Простой поиск php

[Удален]
892

Привет всем, подскажите как лучше сделать поиск, который будет искать по строкам в файле:

Есть форма:

<form action="obr.php" method="post">
<input name="str" type="text" size="30" />
<input type="submit" name="button" id="button" value="Искать строку" />

</form>

в файле obr.php - сам сценарий, нужно такое:

в файле baza.php содержатся строки информаций, в таком формате:

Петров Иван Иванович , Место работы, телефон и так далее...

Иванов Петр Петрович.....

и нужно чтобы в введя в формочку - сравнивалось именно Фамилия имя отчетсво (или просто фамилия) и если такая находится, то выводилась бы вся строка с местом работы , телефоном и всё что мы до конца строки напишем ....

Вот что то написал, но строки ни как сравнить не могу (( перепробывал все операторы, и не могу проверить строку которая пришла с формы и ту которая в массифе файла...

<?
$str= $_POST['str'];

$file_array = file("baza.php");

for($i=0; $i < count($file_array); $i++)
{
$string = substr($file_array[$i], 0);

if($str=$file_array[$i])

{echo $string;
break;
}

else
{echo "Отсутствует";}

}
?>

ПС - можно было бы сделать, -е сли есть однофамильцы, чтобы о двух людях выводилось...

За ранее спасибо за помощь!

[Удален]
#1

Отлично, вот написал работающий код :

Здесь прямо с формы инфа летит на обработку в этот файл "obr.php", а база людей создается разными массивами... При этом ввести необходимо "только" фамилию (проверка настроена на первый элемент массива, где как раз фамилия) ... тогда все работает ...

<?
$str1= $_POST['str'];

$a= array ("Иванов", "Петрович", "Послужной список", "40 лет", "Место работы", "Кафедра" );
$b= array ("Петров", "Петрович2", "Послужной список2", "42 лет", "Место работы2", "Кафедра2" );


for ($i=a; $i<c; $i++)

{

foreach ($$i as $index => $val)
{
if($index!=0)
{;}
else
{
if ($val!=$str1) {;}
else {

foreach ($$i as $val2)
{echo $val2;}
}


break;}

}

}

?>

Явный минус - если людей много, то массивы $a, $b - кончатся дойдя до "z" ... Хотел сделать вместо $a, $b - $pr1, $pr2 ...и так далее ... но запись такого плана не работает:

<?

$str1= $_POST['str'];

$pr1= array ("Иванов", "Петрович", "Послужной список", "40 лет", "Место работы", "Кафедра" );

$pr2= array ("Петров", "Петрович2", "Послужной список2", "42 лет", "Место работы2", "Кафедра2" );

for ($i=1; $i<3; $i++)

{

foreach ($pr$i as $index => $val) ..........

ВОт именно $pr$i не работает (ТО есть не может вывести $pr1, а выдает ошибку), а его аналог буквенный $$i - работает, подскажите как сделать, может там какой то оператор нужен или еще что, читаю справочники - не могу понять ...

sashka_
На сайте с 27.01.2010
Offline
103
#2

Вот попробуйте


$text = trim($_POST[str]);
preg_match_all("#$text.+#i",file_get_contents('baza.php'),$log);
foreach( $log[0] as $res) echo $res."<br>";
Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
[Удален]
#3

Спасибо! код работает как и надо! супер... и так мало кода :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий