Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Вопрос по Php (https://forum.antichat.xyz/showthread.php?t=22501)

AoD 11.08.2006 15:55

Вопрос по Php
 
Ребят как на PHP в файле заменить один символ на другой.

То есть, открываем файл, ищем нужные символы, например (ttt) заменяем их на (zzz) и закрываем файл.

em00s7 11.08.2006 15:59

Напимер если твои симоволы на 1 строчке то :
<?
$i = file("1.txt"); // твой файл
$i[0] = str_replace("ttt","zzz",$i[0]);
echo $i[0];

Trinux 11.08.2006 16:24

http://www.php.net/manual/ru/function.str-replace.php
http://www.php.net/manual/ru/function.preg-replace.php
http://www.php.net/manual/ru/function.ereg-replace.php
http://www.php.net/manual/ru/function.eregi-replace.php

AoD 11.08.2006 16:41

Ребят функции замены я знаю. Наверное, неправильно поставил вопрос.

Меня не интересует замена в переменной. Меня интересует замена в файле. То есть, находим символ в файле, смещаем туда указатель и меняем на то, что нужно. Желательно привести пример в коде.

Код:

<?php
$filepathstat = "temp02"; // файл для работы
$filepathopen = fopen($filepathstat,"a+"); // открываем на чтение и на запись
$zamenit = aaa //символы которые необходимо заменить

  while(!feof($filepathopen))
  {
  $string = fgets($filepathopen); // читаем файл построчно
    if(ereg($zamenit,$string)) // если в строке найдена (aaa) то условие выполняется
    {
    $editstring=ereg_replace($zamenit, "ttt", $string); // находим и заменяем
    fputs($filepathopen,$editstring); // пишим изменённую строку в файл
    }
  }
fclose($filepathopen); // закрываем файл
?>

Дык вот в самом файле в итоге замены нет. А изменённую строку он дописывает в конец файла.

link. 11.08.2006 16:55

PHP код:

 $text 'aaa';  // что меняем 
 
$retext 'ttt'// на что меняем
 // Читаем содержиоме файла 
 
$content file_get_contents("temp02"); 
 
// Заменяем 
 
$content str_replace($text$retext$content);  
 
// Перезаписываем файл 
 
$fd fopen("temp02""w"); 
 if(
$fd
 { 
    
fwrite($fd$content); 
    
fclose($fd); 
 } 

попробуй так

Ch3ck 11.08.2006 16:58

Хм, а не проще будет засунуть всё в file типо вот так:
$fp=file(\"test.txt\");
foreach($fp AS $v)
{
$v=str_replace(\"\\r\",\'\',$v);
$v=str_replace(\"\\n\",\'\',$v);
if(тут твоё условие сравнение строк)
}
НА мой взгляд так удобнее. ДА и не только удобнее-бесспорно лучше... :cool:

AoD 11.08.2006 17:13

Всем спосибо помогли. Тему можно закрывать!


Время: 19:43