Zeile suchen und ersetzen

h4dhunTer

Erfahrenes Mitglied
Hallo,
bestimmt ist das Thema schon oft angesprochen worden, aber es war nie so das richtige für mein Problem dabei.
Ich möchte auf meinem Server die Datei config.conf per PHP öffnen und auslesen. Nun möchte ich noch, dass die erste Zeile ersetzt wird. In der ersten Zeile steht: Passwort=abcdefg.
Ich sende das Passwort per Formular in eine PHP Datei. Jetzt soll die erste Zeile den neuen Inhalt erhalten.

Vielen Dank schonmal für erue Hilfe!
 
Hallo,
danke für die schnelle Antwort.

PHP:
<?php
fopen("config.conf" , "r+");
$passneu = $_POST['passwort'];
?>

Nur nun weiß ich nicht wie ich weiter machen soll. Bin nicht so der PHP-Experte.
 
Ungefaehr so koennte sowas aussehen:
PHP:
$file=fopen('config.php','r');
$data=fread($file,filesize('config.php'));
fclose($file);
$data=str_replace('Passwort=abcdefg','Password='.$_POST['password'],$data);
$file=fopen('config.php','w');
fwrite($file,$data);
fclose($file);
 
Hallo,

kann ich bei fopen() dann auch eine Datei auf meinem Server öffnen:
PHP:
<?
fopen('/home/ordner/config.conf');
?>
Ist das möglich und wenn nein, gibts da einen anderen Befehl?
 
Solange PHP (also in der Regel der User mit dem der Webserver laeuft) die noetigen Berechtigungen hat kannst Du damit alle moeglichen Dateien irgendwo auf Deinem Server oeffnen (es gibt da ein paar Einschraenkungen, aber die lassen wir jetzt der Einfachheit halber mal beiseite). Anders sieht es natuerlich mit Zugriffen ueber das Netzwerk aus, z.B. per HTTP oder FTP.
Wenn allow_url_fopen=on ist (was unter Umstaenden ein nicht zu unterschaetzendes Risiko darstellen kann) kannst Du auch ueber diese Protokolle Dateien oeffnen. Das Problem ist nur, dass man sich nicht darauf verlassen kann/sollte, dass diese Einstellung gegeben ist. Sicherer ist hier der Weg ueber fsockopen(). Es gibt zwar im Grunde auch cURL (HTTP) und die FTP-Funktionen (FTP ;) ), aber vor allem cURL sollte man nicht wirklich erwarten, und auch die FTP-Funktionen sind nicht immer verfuegbar.
 
Hallo,

ich hatte erst heute Zeit, den Code in meine Seite einzubauen. Leider geht er nicht:

PHP:
<?
    $file=fopen('shoutcast/sc_serv0'.$_SESSION['id'].'.conf','r');
    $data=fread($file,filesize('shoutcast/sc_serv0'.$_SESSION['id'].'.conf'));
    fclose($file);
    $data=str_replace('Password='.$apasswort,'Password='.$_POST['neupw'],$data);
    $file=fopen('shoutcast/sc_serv0'.$_SESSION['id'].'.conf','w');
    fwrite($file,$data);
    fclose($file);
?>
Die Fehlermeldung:
Warning: fopen(shoutcast/sc_serv01.conf): failed to open stream: Permission denied in /srv/www/vhosts/domain/httpsdocs/login/stream.php on line 99

Warning: fwrite(): supplied argument is not a valid stream resource in /srv/www/vhosts/domain/httpsdocs/login/stream.php on line 100

Warning: fclose(): supplied argument is not a valid stream resource in /srv/www/vhosts/domain/httpsdocs/login/stream.php on line 101
Zeile 99,100 und 101 sind die Zeilen, wo ich die Datei das zweite mal öffne.

Warum geht das nicht?
 
Zurück