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
Форумы портала PHP.SU :: Версия для печати :: найти нужный параметр из файла
Форумы портала PHP.SU » PHP » Программирование на PHP » найти нужный параметр из файла

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

1. umpc - 09 Июля, 2010 - 01:42:54 - перейти к сообщению
есть файл содержащий такой текст:

idf=410|1=8|2=326|3=30|4=23|5=Y|6=n|7=s64-f23-12-31|8=вааащее... |
idf=416|1=8|2=327|3=33|4=24|5=N|6=n|7=s64-f23-12-66|8=всем привет!|

есть необходимость, чтобы по запросу 410 и 5 выдавался результат "Y"
или к примеру 416 8 выдавал результат "всем привет!"

$file = file("data/file.txt"); //допустим загрузил я файл
$result = false;
foreach ( $file as $number => $string ) //запустил цикл
{
if ( strpos($string, 'idf=410') === 0 ) //нашел строку, а дальше как быть?
$result = $number;
}
2. RomAndry - 09 Июля, 2010 - 02:03:39 - перейти к сообщению
используйте split котрый создаст массив, а уже в нем можно искать нормально
3. JustUserR - 09 Июля, 2010 - 03:06:07 - перейти к сообщению
umpc Действительно лучше использовать предварительную обработку с помощью функции разбиения по символу explode или по шаблону регулярного выражения split - при этом все данные между разделителями должны быть заранее зашифрованными чтобы при обработке не возникало дополнительное разбиение по реальным внутренним данным
4. umpc - 09 Июля, 2010 - 04:00:39 - перейти к сообщению
тоесть, первым шагом, вид данных представляю в виде разделения слэшом?

idf=410/1=8/2=326/3=30/4=23/5=Y/ 6=n/7=s64-f23-12-31/8=вааащее... /
idf=416/1=8/2=327/3=33/4=24/5=N/ 6=n/7=s64-f23-12-66/8=всем привет!/

и стринг (эксплоуд) разобьет это в вид:

idf=416
1=8
2=327
3=33
4=24
5=N
6=n
7=s64-f23-12-66
8=всем привет!

..мм а если в тексте понадобится симвоз слэш? /
5. ALEN - 09 Июля, 2010 - 10:24:01 - перейти к сообщению
umpc
Не проще массив в файл записывать в виде строки, а потом обрабатывать массив?
6. Uchkuma - 09 Июля, 2010 - 11:05:07 - перейти к сообщению
umpc, ознакомьтесь с функциями serialize()/unserialize(), возможно жизнь станет проще =)
7. umpc - 10 Июля, 2010 - 01:15:22 - перейти к сообщению
заработало
Спасибо!
8. JustUserR - 10 Июля, 2010 - 03:42:58 - перейти к сообщению
umpc Можете вообще упростить задачу по обработке вашего массива и использовать встроенную в PHP сериализацию обеспечиваемую функцией serialize - в таком случае вы сможете и записывать представление массива в файл в потом после проведения десериализации функцией unserialize работать как с обычным массивом - без применения каких-либо строковых функций

 

Powered by ExBB FM 1.0 RC1