[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поиск в файле
Женя00000
всем привет.


вот есть скрипт который выполняет поиск в файле определённой строки:

<?php
$a = $_POST['text1']; //объявляем переменную а и ей присваиваем значение
//переменной text1

$file = fopen("data.txt", "r"); //открываем файл data.txt
$buffer = fread($file, filesize("data.txt")); //делаем проверку
fclose($file); //делаем проверку
if (substr_count($buffer, $a)>0){ //делаем проверку
echo "Найден!"; //выводим результат
}
else{
echo "Не найден!";
}
?>


надеюсь этот скрипт написан правильно


перед этим в файл выполняется запись в формате text1 = text2

в результате поиска мы находим значение text1, теперь нужно вместо слова "Найден" вывести значение text2 (text1 и text2 это не переменные, а обычный текст)


пожалуйста помогите.
заранее спасибо



Спустя 1 день, 18 часов, 23 минуты, 14 секунд (2.08.2011 - 12:36) jumper_php написал(а):
ну ты объявляй если найден и введи в экран. вот почитай
zdes est:)

Спустя 1 день, 9 часов, 28 минут, 10 секунд (3.08.2011 - 22:04) Лена написал(а):
К сведению. Я для поиска использую strpos, меньше букв писать :)
if (strpos($buffer, $a)) ...
Если, конечно, не кодировка utf-8

Здесь вам правильнее использовать str_word_count()
Не понятно, как выглядит содержимое файла. Приведите кусок.


$str = "test1= test2";
$b = str_word_count($str, 2);
print_r($b);

foreach($b as $val)
{
if($val==$a) print "Мы нашли наше слово " . $val;
}

Спустя 1 день, 23 часа, 6 минут, 13 секунд (5.08.2011 - 21:11) Женя00000 написал(а):
вот кусок файла data.txt :

text1 = text2
text1 = text2
text1 = text2

строки могут быть обсалютно любые, точнее они имеют такие значения которые ввёл пользователь в текстовые поля.

в данный файл эти строки записанны с помощью скрипта

<?php
$a = $_POST['i'];
$b = $_POST['i3'];
$file = "data.txt";
file_put_contents($file, $a . '=' . $b . "\n", FILE_APPEND);
?>


теперь при поиске ишится соответствие между text3(введённый пользователем текст) и text1 или text2.
при нахождении совпадения (полного (text3===text1 или text3===text2)):
выводится значение text2, если text3===text1
или
выводится значение text1, если text3===text2.

вот так.....
надо написать такой скрипт. у меня не получается(((

Спустя 13 часов, 41 минута, 39 секунд (6.08.2011 - 10:52) bodja написал(а):
Ну наррррод.
Ленивые совсем стали,неделю решаем то ,что делается за 5 минут.

<?php
echo find('./data.txt','слово');

function find($file,$find_text) {
$h='ненайдено! ';
$f=file($file);
for ($i ; $i < count($f) ; $i++) {
if (strstr($f[$i],$find_text) != false) {
list ($s1,$s2)= explode ("=", $f[$i]);
if ($find_text==$s1) {$h='найдено! '.$s2;}
if ($find_text==$s2) {$h='найдено! '.$s1;}
}
}

return $h;
}
?>
Быстрый ответ:

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