Функция замены строки в файле - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Wed, 15 Jan 2025 11:52:57 +0300 в общем остановился на своем варианте:<br> <pre class="prettyprint">&lt;? function replace($from,$to,$str,$file) { # $from - заменяемый текст # $to - текст на который заменяем # $str - строка в которой производим замену (&#039;all - все строки&#039;) # $file - файл в котором производим замену if(!file_exists($file)){die(&quot;Файл &#039;$file&#039; не существует!&quot;);} $f1 = htmlspecialchars(file_get_contents($file)); if($str!==&#039;all&#039;){ $str = $str-1; $f_str = explode(&quot;\n&quot;,$f1); $f2 = str_replace($from,$to,$f_str&#91;$str]); $f3 = str_replace($f_str&#91;$str],$f2,$f1); $result = $f3; }else{ $f1 = htmlspecialchars(file_get_contents($file)); $f2 = str_replace($from,$to,$f1); $result = $f2; } if(file_put_contents($file,$result)) {die (&#039;Замена произведена успешно!&#039;);} else {die (&#039;Ошибка замены!&#039;);} }?&gt;</pre> https://visavi.net/topics/11907/213578 Функция замены строки в файле KOZZ Wed, 28 Jul 2010 08:16:15 +0400 Сообщения https://visavi.net/topics/11907/213578 $txt = file(&#039;text.txt&#039;);<br> $txt[$line] = str_replace($old, $new, $txt[$line]);<br> и хорош https://visavi.net/topics/11907/212799 Функция замены строки в файле ramzes Mon, 26 Jul 2010 21:43:24 +0400 Сообщения https://visavi.net/topics/11907/212799 13, я смотрю на разные варианты, смотрю как реализуют эту задачу другие люди. https://visavi.net/topics/11907/212696 Функция замены строки в файле KOZZ Mon, 26 Jul 2010 18:07:25 +0400 Сообщения https://visavi.net/topics/11907/212696 <blockquote class="blockquote">file будем строки считать, знаеш другой способ это сделать говори</blockquote> ну это делается довольно просто:<br> <pre class="prettyprint">&lt;?$f1 = file_get_contents($file); $str_num = explode(&quot;\n&quot;,$f1); $str_kol = count($str_num);?&gt;</pre> https://visavi.net/topics/11907/212687 Функция замены строки в файле KOZZ Mon, 26 Jul 2010 17:47:40 +0400 Сообщения https://visavi.net/topics/11907/212687 <pre class="prettyprint"> &lt;?php function replace_line($what, $to, $current_file) { $file = file($current_file); $file = array_map(&#039;trim&#039;, $file); if ( $key = array_search($what, $file) ) { $file&#91;$key] = $to; file_put_contents($current_file, implode(&quot;\n&quot;, $file)); return true; } return false; } ?&gt; </pre> https://visavi.net/topics/11907/212678 Функция замены строки в файле DmitryDick Mon, 26 Jul 2010 17:34:13 +0400 Сообщения https://visavi.net/topics/11907/212678 Чем тебя функция из #2 не устраивает? https://visavi.net/topics/11907/212631 Функция замены строки в файле Studentsov Mon, 26 Jul 2010 15:58:05 +0400 Сообщения https://visavi.net/topics/11907/212631 11 ну они все последовательно будут работать а неодновременно,<br> file будем строки считать, знаеш другой способ это сделать говори<br> fopen открываем и пишим в файл уже с изменненой строкой<br> file_get_contents можно вынести в переменную $bufer, но зачем. лишняя строка в коде<br> думаю нагрузка не будет такой уж сильной главное чтоб работало и делало то что нужно. https://visavi.net/topics/11907/212619 Функция замены строки в файле Titov Mon, 26 Jul 2010 15:39:36 +0400 Сообщения https://visavi.net/topics/11907/212619 10, как то странно %)<br> все функции открытия файлов использовал(и file, и fopen, и file_get_contents), а самое интересное что одного и того же файла %)...нерационально https://visavi.net/topics/11907/212617 Функция замены строки в файле KOZZ Mon, 26 Jul 2010 15:24:53 +0400 Сообщения https://visavi.net/topics/11907/212617 а если так?<br> <pre class="prettyprint"> &lt;?php /* file.dat 1|user|password 2|user2|password2 */ $parametr = $_GET&#91;&#039;parametr&#039;]; /* $parametr = 1; */ $file=file(&#039;file.dat&#039;); $count=count($file); for($i=0;$i&lt;$count;$i++) { $ex=explode(&#039;|&#039;,$file&#91;$i]); if ($ex&#91;0]==$parametr) { $var=str_replace($ex&#91;0].&#039;|&#039;.$ex&#91;1].&#039;|&#039;.$ex&#91;2], $parametr.&#039;|user3|password3&#039;, file_get_contents(&quot;file.dat&quot;)); $fopen=fopen(&quot;file.dat&quot;,&quot;w&quot;); fputs($fopen,$var); fclose($fopen); } } ?&gt; </pre> https://visavi.net/topics/11907/212613 Функция замены строки в файле Titov Mon, 26 Jul 2010 15:12:07 +0400 Сообщения https://visavi.net/topics/11907/212613 8, не робит https://visavi.net/topics/11907/212531 Функция замены строки в файле KOZZ Mon, 26 Jul 2010 13:38:03 +0400 Сообщения https://visavi.net/topics/11907/212531 <pre class="prettyprint"> &lt;?php function replace_line($what, $to, $current_file) { $file = file($current_file); if ( $key = array_search($what, $file) ) { $file&#91;$key] = $to; file_put_contents($current_file, implode(&quot;\n&quot;, $file)); return true; } return false; } ?&gt; </pre> https://visavi.net/topics/11907/212525 Функция замены строки в файле DmitryDick Mon, 26 Jul 2010 13:28:58 +0400 Сообщения https://visavi.net/topics/11907/212525 6,а как потом запись в твоем варианте делать чтобы остальные строки сохранились? https://visavi.net/topics/11907/212520 Функция замены строки в файле KOZZ Mon, 26 Jul 2010 13:23:29 +0400 Сообщения https://visavi.net/topics/11907/212520 <pre class="prettyprint"> &lt;?php $what = &#039;что меняем&#039;; $to = &#039;на что меняем&#039;; $file = file(&#039;файл&#039;); if ( $key = array_search($what, $file) ) $file&#91;$key] = $to; ?&gt; </pre> https://visavi.net/topics/11907/212511 Функция замены строки в файле DmitryDick Mon, 26 Jul 2010 13:13:48 +0400 Сообщения https://visavi.net/topics/11907/212511 4, нужен, просто я не то скопировал )) https://visavi.net/topics/11907/212475 Функция замены строки в файле KOZZ Mon, 26 Jul 2010 12:17:39 +0400 Сообщения https://visavi.net/topics/11907/212475 у тебя номер строки тут вообще не используется в функции.. Просто заменяет во всём файле.<br> Да и не нужен этот параметр, я думаю. https://visavi.net/topics/11907/212465 Функция замены строки в файле Валерий Mon, 26 Jul 2010 11:59:55 +0400 Сообщения https://visavi.net/topics/11907/212465