Вы не зашли.
Есть файл например 123.txt
В нём содержится информация в виде
текст|:

текст_2|:
Вопрос как мне нати строку в этом файле если есть только её часть.
Например нужно по зпросу "текст_2" вывело всю строку "текст|:

текст_2|:

"
хм. непонял.
Обьясню ещё раз что именно мне надо
Есть файл например test.dat в нём содержится много строк вида
Код:
a:2:{s:6:"search";s:3:"123";s:5:"count";s:5:"13299";} |
"search" - может быть что угодно (я имею ввиду слово, цифры и т.д.)
"count" - только число
Теперь головняк (для меня)
Надо найти строку по слову в "search" и зменить цыфры в "count" если они изменились скриптом больше делать не чего ненадо.
WapStyle написал:Код:
a:2:{s:6:"search";s:3:"123";s:5:"count";s:5:"13299";} |
На JSON похоже.
в serialize(); из unserialize(); так думаю понятно?
Отредактировано WapStyle (2010.12.26 21:09)
ну что-то типа
Код:
span style="color: #0000BB"><?php$old = fopen('file.txt');$new = fopen('file2.txt');while (($f = fread($old)) !== false) { $data = unserialize($f); // изменяем $data fwrite($new, serialize($data) . PHP_EOL);}fclose($old);fclose($new); |
#7.
TLENS
Off
(14)
Moderator
2010.12.27 16:04
Ну цыклом можна
Код:
lt;?$f=file('test.dat');$c=count($f);$t='';for($i=0; $i<$c; ++$i){ if(substr_count($f[$i],':search:')) { $t=$i; $i=$c; }} |
Добавлено спустя 7 минут 51 секунду: Ну или так
Код:
lt;?$f=file('test.dat');$c=count($f);$t=array();for($i=0; $i<$c; ++$i){ $b=exolode(':',$f[$i]); if($b[1]=='search') { $t=$i; $i=$c; } unset($b);}if(count($t)){ print_r($t);} |
Отредактировано TLENS (2010.12.27 16:04)
#8.
TLENS
Off
(14)
Moderator
2010.12.27 16:04
или регуляркой
/^(.*?:search.*?)#/
TLENS, на*уй тут регулярка, если это сериализация?
#10.
TLENS
Off
(14)
Moderator
2010.12.27 17:05
Чего?
Добавлено спустя 3 минуты 26 секунд: Gemorroj написал:
TLENS, на*уй тут регулярка, если это сериализация?
Я просто не дочитал его вопрос я подумал что ему надо только прчитать
Отредактировано TLENS (2010.12.27 17:05)