Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

11.08.2006, 15:55
|
|
Познающий
Регистрация: 10.02.2006
Сообщений: 42
Провел на форуме: 458694
Репутация:
20
|
|
Вопрос по Php
Ребят как на PHP в файле заменить один символ на другой.
То есть, открываем файл, ищем нужные символы, например (ttt) заменяем их на (zzz) и закрываем файл.
|
|
|

11.08.2006, 15:59
|
|
Участник форума
Регистрация: 02.05.2006
Сообщений: 193
Провел на форуме: 530613
Репутация:
25
|
|
Напимер если твои симоволы на 1 строчке то :
<?
$i = file("1.txt"); // твой файл
$i[0] = str_replace("ttt","zzz",$i[0]);
echo $i[0];
Последний раз редактировалось em00s7; 11.08.2006 в 16:05..
|
|
|

11.08.2006, 16:24
|
|
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме: 941818
Репутация:
569
|
|
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
|
|
|

11.08.2006, 16:41
|
|
Познающий
Регистрация: 10.02.2006
Сообщений: 42
Провел на форуме: 458694
Репутация:
20
|
|
Ребят функции замены я знаю. Наверное, неправильно поставил вопрос.
Меня не интересует замена в переменной. Меня интересует замена в файле. То есть, находим символ в файле, смещаем туда указатель и меняем на то, что нужно. Желательно привести пример в коде.
Код:
<?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); // закрываем файл
?>
Дык вот в самом файле в итоге замены нет. А изменённую строку он дописывает в конец файла.
Последний раз редактировалось AoD; 11.08.2006 в 16:50..
|
|
|

11.08.2006, 16:55
|
|
Познающий
Регистрация: 15.05.2005
Сообщений: 58
Провел на форуме: 531678
Репутация:
1
|
|
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);
}
попробуй так
|
|
|

11.08.2006, 16:58
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
Хм, а не проще будет засунуть всё в file типо вот так:
$fp=file(\"test.txt\");
foreach($fp AS $v)
{
$v=str_replace(\"\\r\",\'\',$v);
$v=str_replace(\"\\n\",\'\',$v);
if(тут твоё условие сравнение строк)
}
НА мой взгляд так удобнее. ДА и не только удобнее-бесспорно лучше... 
|
|
|

11.08.2006, 17:13
|
|
Познающий
Регистрация: 10.02.2006
Сообщений: 42
Провел на форуме: 458694
Репутация:
20
|
|
Всем спосибо помогли. Тему можно закрывать!
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|