[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод определенной строки из файла
Страницы: 1, 2
Evlampidii
Ребят, я уже дня три ищу решение, но ничего подобного так и не нашел. Задача такая, у меня есть файл cat.txt. В этом фале содержаться категории:
12345*Категория номер 1
34567*Еще одна категория
87650*И здесь содержится текст

Допустим мне нужно вывести фразу из строки "Еще одна категория". Мне не известен текст, не известен номер строки. Все что я знаю, так это предшествующий номер до знака "*".

Вот мой код, который я использовал для решения этой задачи:

<?php
$categoriya="34567";
$file = fopen("cat.txt", "r");
$str = fread($file, filesize("cat.txt"));
fclose($file);
if (!strstr($str, "$categoriya"))
echo "Строка не найдена<br>";
else
$word = strstr($str, "$categoriya");
$pure_str = mb_substr($word, 6, strrpos($word, ' ' ));
echo $pure_str;
?>

Но используя этот код я получаю следующий результат:
Еще одна категория
87650*И здесь содержится

А нужно :
Еще одна категория

Скажите пожалуйста, как этого добиться.

Для особо высокомерных господ хочу отметить, что я не являюсь ни программистом, ни веб дизайнером, я совершенно из другой отрасли. Но так получилось, что на данный момент мне пришлось столкнуться с программированием.

Спасибо!
Valick
Цитата
Для особо высокомерных господ хочу отметить

это лишнее, и поверьте только ухудшает отношение форумцев к вам

Вам просто нужно читать файл построчно и проверять номер

// Функция чтения файла
function read_file_func($file,$num){
// $file - имя файла
// $num - номер искомой категории
// Открываем файл если он существует

if(file_exists($file)){
$f = fopen($file, "r+t") or die("Невозможно открыть файл");
// Блокируем файл (разделяемая блокировка)
flock($f, LOCK_SH); // ждём завершения процесса записи
// В файл теперь никто не пишет, можно читать

while (!feof($f)) {
$line = fgets($f);
$n = explode('*', $line);
if ($num == $n[0]) return $n[1];
}
// еслии искомая строка не найдена возвращаем ЛОЖЬ
return false;
}

только разделитель в тексте можно придумать какой-нибудь поинтереснее чем *, например {**?**}

вызывается функция так
if ($fu=read_file_func("cat.txt",34567)) echo $fu; else echo 'строка не найдена';


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.