PHP Text an Datei anhängen

Hallo!

Ich möchte einen Text in eine neue Zeile in eine .htaccess schreiben. Ich habe dafür folgenden Code

PHP:
        $string = '\n Redirect \\'.$outID.' '.$refLink;
        $dateiname = $_SERVER['DOCUMENT_ROOT'].'/.htaccess';
        $handler = fOpen($dateiname , "a+");
        fWrite($handler , $string);
        fClose($handler);

Ich habe das immer mit \n gemacht, jedoch wird \n in die Datei geschrieben. Jemand eine Idee ?
 
Also kurzes Googlen bringt schnell das Ergebnis, dass man die Konstante PHP_EOL nehmen sollte, da Zeilenumbrüche je nach Betriebssystem unterschiedlich sein können.
Und etwas weiterlesen scheint mal wieder die tollen "Features" von PHP aufzudecken, dass
Code:
"a\nb"
nicht das gleiche ergibt wie
Code:
'a\nb'
. Also entweder andere Anführungszeichen oder besser gleich PHP_EOL verwenden.
 
zum einen kannste das mit file_put_contents() bissl einkürzen, dafür gibts nen append flag :D

ansonst ist die frage wie du den string definierst.

unter linux bei mir kommt folgendes raus:

Code:
easteregg@x201s:~$ php test.php
easteregg@x201s:~$ php test.php
easteregg@x201s:~$ php test.php
easteregg@x201s:~$ cat test
\n Redirect \\n Redirect \\n Redirect \easteregg@x201s:~$

wenn du allerdings das ganze nicht mit '' schreibst sondern mit " " funktioniert es. ;)

also

PHP:
$string = "\n" . ' Redirect \\'.$outID.' '.$refLink;
        $dateiname = $_SERVER['DOCUMENT_ROOT'].'/.htaccess';
        $handler = fOpen($dateiname , "a+");
        fWrite($handler , $string);
        fClose($handler);

hier is tnoch bissl erklärung dazu ;)

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single
 
*hust* es ist nicht gut, wenn dein Webserver Schreibrechte hat, wo er sie nicht braucht. Und es ist in diesem speziellen Fall ungut, dass dein Webserver in der .htaccess rumschreiben kann.
 
Zum Einen sollte man sich (wie schon erwähnt wurde) echt überlegen, ob es sinnvoll und notwendig ist, PHP-seitig die .htaccess umschreiben zu lassen

und zum Anderen gehe ich davon aus (ohne dir zu nahe treten zu wollen), dass jemand, der in PHP den Unterschied zwischen Single Quoted Strings und Double Quoted Strings nicht kennt*, auch so einige weitere Fall-Stricke von PHP nicht kennt und somit eine unsichere Web-Applikation quasi "vorprogrammiert" (was für ein Wortspiel :-P) ist...

* @lookshe : dieses Feature brauchst du nicht abwertend in Anführungsstriche schreiben, das hat durchaus seinen Sinn ;-)
 
Zurück
Oben