Нужен PHP скрипт который заминит строку х на строку у во всех файлах в той папке, где он находится Кто поможет? Тот что из гугла-неработает
<?php ######Файлы в папке files с разширением .txt###### $s = ""; //текст который заменять $n = ""; //текст на который заменять $files = glob("files/*.txt"); foreach($files as $fl){ $res = file_get_contents("files/$fl"); $content = str_replace($s, $n, $res); file_put_contents("files/$fl", $content); } echo "ok"; ?>
Так? PHP: <?php $path = getcwd(); if ($dh = opendir($path)) { $path_parts = pathinfo($_SERVER["PHP_SELF"]); while (($file = readdir($dh)) !== false) { if ($file !== '.' AND $file !== '..' AND $file !== $path_parts['basename']) { $current_file = "{$path}//{$file}"; if (is_file($current_file)) { $f = array_map("trim", file($current_file)); $strX = 1; // номер строки x $strY = 3; // номер строки y $count = count($f); $fp = fopen($current_file,"wb"); for($i=0; $i<$count; $i++) { if($i!=$strX-1) { fwrite($fp, $f[$i]."\r\n"); } else { fwrite($fp, $f[$strY-1]."\r\n"); } } fclose($fp); } } } } ?> Или строка (y) должна определяться вручную? Если да, то необходимо заменить $strY = 5; на $strY = "здесь моя строка"; и fwrite($fp, $f[$strY-1]); на fwrite($fp, $strY); Глаза уже слипаются, поэтому наверно не понял вопрос
daniel777, твой скрипт не сработает, так как в этом выражение file_get_contents("files/$fl"); в переменную $fl подставится значение files/имя_какого-то_файла.txt что приведет к предупреждению: failed to open stream: No such file or directory, так как функция file_get_contents будет ссылаться на неправильный путь files/files/имя_какого-то_файла.txt Чтобы данный скрипт сработал в директории, в которой он находиться надо сделать так: PHP: <?php $s = ""; //текст который заменять $n = ""; //текст на который заменять $files = glob("*.txt"); foreach($files as $fl){ $res = file_get_contents("$fl"); $content = str_replace($s, $n, $res); file_put_contents("$fl", $content); } echo "ok"; ?> а чтобы он сработал в папке files нужно сделать так: PHP: <?php ######Файлы в папке files с разширением .txt###### $s = ""; //текст который заменять $n = ""; //текст на который заменять $files = glob("files/*.txt"); foreach($files as $fl){ $res = file_get_contents("$fl"); $content = str_replace($s, $n, $res); file_put_contents("$fl", $content); } echo "ok"; ?>