Mailinglisten-Archive |
Moin, Moin Ich will eine Textdatei lesen, und ab einer bestimmten Zeile (die ich mir einem regulären Ausdruck herausfinde) den darauf folgenden ersetzene. Es ist kein Problem, die Stelle mit ftell() zu speichern. Wie sage ich allerdings meiner fputs()-Funktion, dass sie den Text ab dieser stelle ersetzen soll, bisher wird der der neue Text immer am Dateiende angehängt anstatt er den alten Text ersetzt. Direkt vor der fputs()-Funktion setzte ich den Dateizeiger mit fseek($filehandle,$marke). Hier ist mein kleines Testscript, ich hoffe es hat keine absolut blödsinnigen Fehler und funktioniert deshalb nicht, sollte dem so sein bitte steinigt mich nicht... Danke Ruschi <? $name= "./text.txt"; $file=fopen($name,"r+"); $inh= split("\n",fread($file,filesize($name))); foreach($inh as $line){ if(ereg("^Marke",$line)){ $flag1=1; $start=ftell($file)+1; } if($flag1==1){ $line=str_replace($line,"alt->".$line."\n",$line); $oldline[]=$line; } } fseek($file,$start); foreach($oldline as $line){ fputs($file,$line); } fclose($file); ?>
php::bar PHP Wiki - Listenarchive