Търсачка която търси думи от ФАЙЛ!

lqbo123

Registered
Здравейте трябва ми търсачка която търси в даден файл да кажем да търси в info.txt ако има написана дума в един таг да речем "<a href="index.php">Как да си направим брезент...</a>" И ако се напише само да речем в търсачката "Брезент" да излиза цялото изречение или поне да търси в даден файл...

Защото с mysql незнам как да вкарам тези линкове и да се намират от търсачката..
 
добре тази става но искам да попитам как да я направа да изкарва резултатът в друга страница а не в същата примерно я сложа в index.php а резултата след натискането на бутона да се изкарва в search_rezults.php да кажем ? ето кога

Код:
<body>
<?php
// CONFIG //
$min_simb = 2; // колко символа минимум трябва да въведе потребителя
$max_simb = 50; // колко символа максимум може да въведе потребителя
$and_or = true; // ако оставите "true" ще връща резултати само ако съществуват всички въведени думи от потребителя, ако напишете "false" тогава ще връща резулати, в които участва поне една от думите.
$h_g = true; // ако оставите "true" ще различава малки и големи букви, ако напишете "false" няма да прави разлика между малки и големи букви


// Това са текстовете в, които ще се търси. Може да ги заместите с каквото пожелаете. Може да ги изкарате от файл примерно :)
$filee = "file.txt"; // тук въвеждате файла от, който ще чете.
$razdelqne = "\n"; // тук пишете с какво да разделя резултатите от файла. По default съм го направил нов ред "\n"

$file = file_get_contents($filee);
$razdel = explode($razdelqne,$file);
foreach ($razdel as $info) {
$str[] = $info; // тук записваме информацията в масив
}


// Формата за търсене
echo "<form action=\"\" method=\"post\">";
echo "Търси: <input type=\"text\" name=\"searches\" size=\"50\" maxlength=\"$max_simb\"> <input type=\"submit\" name=\"submit\" value=\"Търси\">";
echo "</form>";

if (isset($_POST['submit']) && !empty($_POST['searches'])) {
if (strlen($_POST['searches']) >= $min_simb && strlen($_POST['searches']) <= $max_simb) { // ако сме спазили минимални и максималния брой символи за търсене продължаваме
$search = array(); // създаваме празен масив

$razd = explode(" ",$_POST['searches']); // разделяме въведеното от потребителя на думи
foreach ($razd as $s) {
$search[] = $s; // вкарваме думите в по-горе създадения масив
}

for ($i=0;$i<count($str);$i++) { // започваме цикъл със всички текстове
if ($and_or) { $searched = 1; } else { $searched = 0; } // създаваме променлива, която ще играе важна роля по-долу при определяне на резултатите
foreach($search as $value) {
if ($h_g) { str_replace($value,'',$str[$i],$count); } else { str_ireplace($value,'',$str[$i],$count); } // тук определяме дали да различава малките и големи букви или не

if ($and_or) { // ако сме избрали да връща резултати само ако съществуват всички въвдени думи
if ($count == 0) {
$searched = 0;
break;
}
} else {
if ($count >= 1) { // ако сме избрали да връща резултати дори и да съвпада една от въведените думи
$searched = 1;
break;
}
}
}
if ($searched == 1) {
$result[] = $i; // записваме в нов масив върнатите резултати
}
}


// тука вече изкарваме резултатите на екрана :)
if (count($result) >= 1) {
if (count($result) == 1) { $res = "резултат"; } else { $res = "резултати"; }
echo "Търсенето ви върна <b>".count($result)."</b> $res!<br /><br />";
$n=1;
foreach($result as $key) {
echo $n.". <b>".$str[$key]."</b><br />";
$n++;
}
} else {
echo "<b>Не е намерен урока!</b>";
}
} else { echo "Трябва да въведете от <b>$min_simb</b> до <b>$max_simb</b> символа!"; }
}
?>
</body>
 
index.php
Код:
<?php
echo "<form action=\"search_rezults.php\" method=\"post\">";
echo "Търси: <input type=\"text\" name=\"searches\" size=\"50\" maxlength=\"$max_simb\"> <input type=\"submit\" name=\"submit\" value=\"Търси\">";
echo "</form>";
?>

search_rezults.php
Код:
<body>
<?php
// CONFIG //
$min_simb = 2; // колко символа минимум трябва да въведе потребителя
$max_simb = 50; // колко символа максимум може да въведе потребителя
$and_or = true; // ако оставите "true" ще връща резултати само ако съществуват всички въведени думи от потребителя, ако напишете "false" тогава ще връща резулати, в които участва поне една от думите.
$h_g = true; // ако оставите "true" ще различава малки и големи букви, ако напишете "false" няма да прави разлика между малки и големи букви


// Това са текстовете в, които ще се търси. Може да ги заместите с каквото пожелаете. Може да ги изкарате от файл примерно :)
$filee = "file.txt"; // тук въвеждате файла от, който ще чете.
$razdelqne = "\n"; // тук пишете с какво да разделя резултатите от файла. По default съм го направил нов ред "\n"

$file = file_get_contents($filee);
$razdel = explode($razdelqne,$file);
foreach ($razdel as $info) {
$str[] = $info; // тук записваме информацията в масив
}

if (isset($_POST['submit']) && !empty($_POST['searches'])) {
if (strlen($_POST['searches']) >= $min_simb && strlen($_POST['searches']) <= $max_simb) { // ако сме спазили минимални и максималния брой символи за търсене продължаваме
$search = array(); // създаваме празен масив

$razd = explode(" ",$_POST['searches']); // разделяме въведеното от потребителя на думи
foreach ($razd as $s) {
$search[] = $s; // вкарваме думите в по-горе създадения масив
}

for ($i=0;$i<count($str);$i++) { // започваме цикъл със всички текстове
if ($and_or) { $searched = 1; } else { $searched = 0; } // създаваме променлива, която ще играе важна роля по-долу при определяне на резултатите
foreach($search as $value) {
if ($h_g) { str_replace($value,'',$str[$i],$count); } else { str_ireplace($value,'',$str[$i],$count); } // тук определяме дали да различава малките и големи букви или не

if ($and_or) { // ако сме избрали да връща резултати само ако съществуват всички въвдени думи
if ($count == 0) {
$searched = 0;
break;
}
} else {
if ($count >= 1) { // ако сме избрали да връща резултати дори и да съвпада една от въведените думи
$searched = 1;
break;
}
}
}
if ($searched == 1) {
$result[] = $i; // записваме в нов масив върнатите резултати
}
}


// тука вече изкарваме резултатите на екрана :)
if (count($result) >= 1) {
if (count($result) == 1) { $res = "резултат"; } else { $res = "резултати"; }
echo "Търсенето ви върна <b>".count($result)."</b> $res!<br /><br />";
$n=1;
foreach($result as $key) {
echo $n.". <b>".$str[$key]."</b><br />";
$n++;
}
} else {
echo "<b>Не е намерен урока!</b>";
}
} else { echo "Трябва да въведете от <b>$min_simb</b> до <b>$max_simb</b> символа!"; }
}
?>
</body>
:roll:
 

Горе