Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Замена данных в текстовом файле

Сообщения:  [1-10]   [11-19] 

 
 автор: GлюК   (16.02.2006 в 22:35)   письмо автору
 
   для: Loki   (16.02.2006 в 12:29)
 

Там надо маленько подправить, и всё будет нормально работать. Нужно использовать не \n, а \r\n, если уж мы делаем trim + ещё тогда надо в массив после trim'a значения заносить. Короче, вот скрипт:

<?
$value1
=8888;
$value2=4444;
$filename "12.txt";
$arr file($filename);
foreach (
$arr as $key=>$val)
{
$val=trim($val);
if (
$val==$value2)
$arr[$key]=$value1;
else
$arr[$key]=$val;
}
$handler fopen($filename,'w+');
fwrite($handler,implode("\r\n",$arr));
fclose($handler);
?>

Проверил, всё работает!

   
 
 автор: Loki   (16.02.2006 в 12:29)   письмо автору
 
   для: Новичек   (16.02.2006 в 12:28)
 

а у меня работает.

   
 
 автор: Новичек   (16.02.2006 в 12:28)
 
   для: Loki   (16.02.2006 в 12:24)
 

Не помогло

   
 
 автор: Loki   (16.02.2006 в 12:24)   письмо автору
 
   для: Новичек   (16.02.2006 в 12:08)
 


if ($val===$value2)

замените на

if ($val==$value2)

   
 
 автор: Новичек   (16.02.2006 в 12:08)
 
   для: Loki   (16.02.2006 в 11:24)
 

Тоже самое, все равно не работает.

   
 
 автор: Loki   (16.02.2006 в 11:24)   письмо автору
 
   для: Новичек   (16.02.2006 в 11:01)
 


<? 
$value1
=8888
$value2=4444
$filename "12.txt"
$arr file($filename); 
foreach (
$arr as $key=>$val
{
$val=trim($val);  
if (
$val===$value2
$arr[$key]=$value1

$handler fopen($filename,'w+'); 
fwrite($handler,implode("\n",$arr)); 
fclose($handler); 
?> 

   
 
 автор: Новичек   (16.02.2006 в 11:01)
 
   для: Loki   (16.02.2006 в 09:56)
 


<? 
$value1
=8888
$value2=4444;
$filename "12.txt"
$arr file($filename); 
$val=trim($val); 
foreach (
$arr as $key=>$val

if (
$val===$value2
$arr[$key]=$value1

$handler fopen($filename,'w+'); 
fwrite($handler,implode("\n",$arr)); 
fclose($handler); 
?>


текстовый файл


1234
7654
98765
4444
6543
ро76
987го


насколько я понимаю при запуске скрипта 4444 должно сменится на 8888, но оно не меняется, только добавляет кучу квадратиков между цифрами [][][] и после каждого запуска их становится все больше и больше.

   
 
 автор: Loki   (16.02.2006 в 09:56)   письмо автору
 
   для: Новичек   (16.02.2006 в 09:34)
 

что именно не работает? приведите ваш код

   
 
 автор: Новичек   (16.02.2006 в 09:34)
 
   для: Loki   (16.02.2006 в 09:27)
 

Все равно не работает.

   
 
 автор: Loki   (16.02.2006 в 09:28)   письмо автору
 
   для: Eugene   (16.02.2006 в 01:06)
 

При этом мы не ограничены количеством доступной оперативки.

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования