Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с файлом редактирования строки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: зачётт
reslear
Отправлено: 25 Сентября, 2011 - 15:18:44
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


Привет!

есть:

PHP:
скопировать код в буфер обмена
  1. 1       Замужем
  2. 2       Замужема
  3. 3       Замужемп
  4. 4       Замужеме
  5.  


нужно проверить на существование цифры:
PHP:
скопировать код в буфер обмена
  1. foreach ($file_arr as $item  => $line){
  2.  trim($line);
  3.  list ($id, $data) = split("\t",$line,2);
  4.  if ($id == "4"){
  5.   print $data;
  6.  }
  7. }


ну и собственно нужно как то заменить $data
 
 Top
snikers987
Отправлено: 25 Сентября, 2011 - 15:23:16
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




чет я совсем не понял что требуется..


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
reslear
Отправлено: 25 Сентября, 2011 - 15:32:15
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


snikers987, например что-б получилось :

4 Замужеме

вот так:

4 Тут другой текст
 
 Top
LIME
Отправлено: 25 Сентября, 2011 - 15:33:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. $file_arr[$item]=implode("\t",$arr=($id,$newdata));

и лучше использовать explode() в таких случаях вместо split()

(Отредактировано автором: 25 Сентября, 2011 - 15:34:38)

 
 Top
reslear
Отправлено: 25 Сентября, 2011 - 15:36:20
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


LIME, $newdata переменная нового текста?
 
 Top
snikers987
Отправлено: 25 Сентября, 2011 - 15:37:24
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




от куда берется значение переменной $is?

а регулярными выражением что нельзя?


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
reslear
Отправлено: 25 Сентября, 2011 - 15:40:18
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


snikers987, $id и $data получаем :

$id = "3"
$data = "Замужемп"

то есть мы строку разбили "\t" на две переменные!

(Отредактировано автором: 25 Сентября, 2011 - 15:40:45)

 
 Top
LIME
Отправлено: 25 Сентября, 2011 - 15:40:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




reslear да
 
 Top
reslear
Отправлено: 25 Сентября, 2011 - 15:41:51
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


выдаёт ошибку: unexpected ','
LIME, чё ты говорил про explode()? можешь прикинуть чё получится?

(Отредактировано автором: 25 Сентября, 2011 - 15:46:35)

 
 Top
snikers987
Отправлено: 25 Сентября, 2011 - 15:50:05
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




PHP:
скопировать код в буфер обмена
  1. $file_arr[$item]=explode("\t",$arr=($id,$newdata));


тут LIME наверно всетаки имел ввиду explode() , а не implode(), так как implode() никак не может вернуть массив.


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
LIME
Отправлено: 25 Сентября, 2011 - 16:02:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




snikers987 нет сказал именно что хотел но для первоначального кода топикстартера
reslear ну так отлаживайте
или хотябы дайте получившийся код
(Добавление)
PHP:
скопировать код в буфер обмена
  1. foreach ($file_arr as $item  => $line){
  2.  trim($line);
  3.  list ($id, $data) = explode("\t",$line,2);
  4.  if ($id == "4"){
  5.     $file_arr[$item]=implode("\t",$arr=array($id,$newdata));
  6.  }
  7. }

(Отредактировано автором: 25 Сентября, 2011 - 16:43:19)

 
 Top
reslear
Отправлено: 25 Сентября, 2011 - 20:48:42
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


LIME, хоть убей но без изменений :

PHP:
скопировать код в буфер обмена
  1. $file = "data.dat";
  2. $file_arr = file($file);
  3.  
  4. foreach ($file_arr as $item  => $line){
  5.  trim($line);
  6.  list ($id, $data) = explode("\t",$line,2);
  7.  if ($id == "4"){
  8.     $file_arr[$item]=implode("\t",$arr=array($id,'gg'));
  9.  }
  10. }
 
 Top
LIME
Отправлено: 25 Сентября, 2011 - 21:24:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




reslear убью если окажется что надо было в файл писать
это работает
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file = "data.dat";
  3. $file_arr = file($file);
  4.  
  5. foreach ($file_arr as $item  => $line){
  6.  trim($line);
  7.  list ($id, $data) = explode("\t",$line,2);
  8.  if ($id == "4"){
  9.    $file_arr[$item]=implode("\t",$arr=array($id,'gg'));
  10.  }
  11. }
  12. var_dump($file_arr);
  13. ?>

проверьте у вас действительно таб разделяет в файле?
 
 Top
reslear
Отправлено: 25 Сентября, 2011 - 21:31:59
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


LIME, ))) да мне нужно в этом файле заменить.
 
 Top
LIME
Отправлено: 25 Сентября, 2011 - 21:43:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




есть ветка "напишите за меня"
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file = "data.dat";
  3. $file_arr = file($file);
  4.  
  5. foreach ($file_arr as $item  => $line){
  6.  trim($line);
  7.  list ($id, $data) = explode("\t",$line,2);
  8.  if ($id == "4"){
  9.    $file_arr[$item]=implode("\t",$arr=array($id,'gg'.PHP_EOL));
  10.  }
  11. }
  12. file_put_contents($file,$file_arr);
  13. var_dump($file_arr);
  14. ?>
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB