Mastershrimp: PHP ersetzt nicht String in JavaScript-Datei

Hallo!

Ich versuche gerade mittels eines PHP-Scripts eine JavaScript-Datei zu verändern.

In dieser JavaScript-Datei befindet sich nur folgender Array:

messages = new Array('### ADD YOUR SHOUT ###\n','Max (25.12.03): 1!!\n','Max (25.12.03): 2!!\n','Max (25.12.03): 3!!\n','Max (25.12.03): 4!!\n','Max (25.12.03): 5!!\n','Max (25.12.03): 6!!\n','Max (25.12.03): 7!!\n','Max (25.12.03): 8!!\n','Max (25.12.03): 9!!\n','Max (25.12.03): 10!!\n','Max (25.12.03): 11!!\n','Max (25.12.03): 12!!\n','Max (25.12.03): 13!!\n','Max (25.12.03): 14!!\n');

Die PHP-Datei soll nun einen weiteren Eintrag nach '### ADD YOUR SHOUT ###\n' einfügen.

Soweit ja alles kein Problem - nur findet die PHP-Datei diesen String '### ADD YOUR SHOUT ###\n' nicht! Ich schätze mal dass die '' und die \ alles etwas verkomplizieren, aber wenn man vor jedes ' und vor jedes \ ein \ schreibt, um es zu umschreiben, klappt es auch nicht...

Das ganze soll später eine Shoutbox werden. Ihr findet sie unter http://mitglied.lycos.de/mastershrimp/shoutbox/community.html.

Die PHP-Datei sieht folgendermaßen aus:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Shoutbox-PHP-Script</TITLE>
<link rel="stylesheet" type="text/css" href="../msstyle.css">
</HEAD>
<BODY>

<?php
 $user = $HTTP_POST_VARS['user'];
 $message = $HTTP_POST_VARS['message'];

$message = htmlentities($message);
 $message =stripslashes($message);
 $user = htmlentities($user);
 $user = stripslashes($user);

$datum = date("d.m.y");
 $datum.=" ";
 $datum.= date("G:i");

$shout ="'### ADD YOUR SHOUT ###\n',";
 $shout.= "'";
 $shout.=$user;
 $shout.=" (";
 $shout.=$datum;
 $shout.="): ";
 $shout.=$message;
 $shout.="\n',";

if(file_exists("shouts.js"))
  {
   $datei = fopen("shouts.js","r");
   if($datei)
    {
     $dateigroesse = filesize("shouts.js");
     $inhalt = fread($datei,$dateigroesse);
     fclose($datei);

$ersetzen=str_replace("'### ADD YOUR SHOUT ###\n',",$shout,$inhalt);

if(file_exists("shouts.js"))
      {
       $datei = fopen("shouts.js","w");
       if($datei)
        {
         $output = fwrite($datei,$ersetzen);
         fclose($datei);
         print("OK <a href='community.html'>zurück</a>");
        }
       else
        {
         print("<br><b>Fehler:</b> Die Datei 'shouts.js' konnte nicht geladen werden. Benachrichtige bitte den Admin dieser Seite.");
        }
      }
     else
      {
       print("<br><b>Fehler:</b> Die Datei 'shouts.js' konnte nicht gefunden werden. Benachrichtige bitte den Admin dieser Seite.");
      }
     }
   else
    {
     print("<br><b>Fehler:</b> Die Datei 'shouts.js' konnte nicht geladen werden. Benachrichtige bitte den Admin dieser Seite.");
    }
  }
 else
  {
   print("<br><b>Fehler:</b> Die Datei 'shouts.js' konnte nicht gefunden werden. Benachrichtige bitte den Admin dieser Seite.");
  }
?>
</BODY>
</HTML>

Kann mir jemand weiterhelfen? Ich müsste nur wissen, wie ich den Such-String '### ADD YOUR SHOUT ###\n' schreiben muss, damit PHP ihn finden und ersetzen kann.

Danke schonmal!

Gruß

mastershrimp

  1. Hallo,

    in dieser Zeile hast du den backslash vergessen:

    $ersetzen=str_replace("'### ADD YOUR SHOUT ###\n',",$shout,$inhalt);

    sollte also so aussehen:
    $ersetzen=str_replace("'### ADD YOUR SHOUT ###\n',",$shout,$inhalt);

    mfg,
    Lanthan

    1. sollte also so aussehen:
      $ersetzen=str_replace("'### ADD YOUR SHOUT ###\n',",$shout,$inhalt);

      mfg,
      Lanthan

      Hmm. Klappt leider immer noch nicht...Die shouts.js ist nach wie vor unberührt :(

      Muss ich sonst noch was verändern/anpassen?

      MfG

      Mastershrimp

      1. Hallo nochmal!

        Habe jetzt mal diverse Sachen ausprobiert und bin zu dem Schluß gekommen, dass eigentlich alles klappen müsste...Wenn man einen anderen Such-String eingibt, wird dieser auch korrekt ersetzt. Nur eben nicht der besagte String "'### ADD YOUR SHOUT ###\n',"

        Das _kann_ doch irgendwie nicht sein. Ich wüsste jetzt langsam auch nicht mehr, was man ändern könnte.

        Helft mir bitte! Ich weiß echt nicht mehr weiter.

        verzweifelnder Gruß

        Mastershrimp

        1. Habs nach einiger Arbeit selbst irgendwie hinbekommen - aber ich weiß nicht genau, woran's lag.

          Vielleicht am Komma, oder so.

          Egal. Das Ergebnis zählt ;)

          MfG

          Mastershrimp