Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Нужна малюсенькая помощь по готовому скрипту |

24.01.2010, 20:02
|
|
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме: 39523
Репутация:
0
|
|
Нужна малюсенькая помощь по готовому скрипту
Есть такой скрипт поиска и вывода кеев из файла .txt
PHP код:
<form action="index.php" method="GET">
<input name="key" type="text" size="60"></input>
<input type="submit" value="OK"></input>
</form>
<?php
if ((isset($_GET["key"]))&&(!empty($_GET["key"]))){
$key = $_GET["key"];
$key_length = strlen($key);
@$file = fopen("keys.txt", "r");
if ($file){
flock($file, LOCK_SH);
flock($file, LOCK_UN);
$i = 0;
while (!feof($file)){
$arr[$i] = fgets($file, 200);
$i++;
}
fclose($file);
$i = 0;
for ($i=0; $i<count($arr); $i++){
$l = 0;
for ($l=0; $l<strlen($arr[$i])-$key_length; $l++){
if ($key == substr($arr[$i],$l,$key_length)){
echo $arr[$i] . "<br>";
}
}
}
}
else{
echo "Not Found";
}
}
?>
но есть несколько вопросов :
1. как сделать чтоб когда вводишь например : красный карандаш он искал не только точно заданую фразу но и с перестановками, например карандаш красный, карандаш он красный.
2. и как сделать чтоб он выводил уже перемешаными искомые кеи.
Огромное спасибо Всем кто откликнется  .
|
|
|

24.01.2010, 20:10
|
|
Познающий
Регистрация: 30.01.2007
Сообщений: 69
Провел на форуме: 1405367
Репутация:
47
|
|
1.Разбей на 2 слова фразу. Можно игнорировать символы.
if ($key1+$key2 == substr($arr[$i],$l,$key_length) || $key2+$key1 == substr($arr[$i],$l,$key_length))
Как-то так. Вообще php я не очень знаю, было бы на ASP.net ))
|
|
|

24.01.2010, 20:14
|
|
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме: 39523
Репутация:
0
|
|
Вы конечно извените а куда это вставить ? (краснеющий смайлик)
|
|
|

24.01.2010, 20:18
|
|
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме: 389768
Репутация:
158
|
|
не поленился бы, код отформатировал. Абсолютно не читаемый.
if ((isset($_GET["key"]))&&(!empty($_GET["key"]))){
$i = 0;
for ($i=0;...

Последний раз редактировалось Solker; 24.01.2010 в 20:30..
|
|
|

24.01.2010, 20:19
|
|
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме: 39523
Репутация:
0
|
|
этот код мне посоветовали на этом сайте  , а почему не читаемый ?
|
|
|

24.01.2010, 20:23
|
|
Участник форума
Регистрация: 03.09.2009
Сообщений: 179
Провел на форуме: 1014907
Репутация:
90
|
|
PHP код:
<?php
if ((isset($_GET["key"]))&&(!empty($_GET["key"]))){
$key = $_GET["key"];
$key_length = strlen($key);
$keys = explode(' ', $key);
@$file = fopen("keys.txt", "r");
if ($file){
flock($file, LOCK_SH);
flock($file, LOCK_UN);
$i = 0;
while (!feof($file)){
$arr[$i] = fgets($file, 200);
$i++;
}
fclose($file);
$i = 0;
for ($i=0; $i<count($arr); $i++){
$ok = 1;
for($j=0; $J<sizeof($keys); $j++)
if (strpos($arr[$i], $keys[$j]) === FALSE) ok = 0;
if(ok == 1)
echo $arr[$i] . "<br>";
}
}
else{
echo "Not Found";
}
}
?>
если я ничего не напутал, то он ищет каждое слово и если все слова есть в строке, строка выводится
|
|
|

24.01.2010, 20:33
|
|
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме: 39523
Репутация:
0
|
|
WNZRS
выдает ошибку в этой строке if (strpos($arr[$i], $keys[$j]) === FALSE) ok = 0;
Parse error: syntax error, unexpected '='
не мог бы посмотреть в чем проблема ? буду очень признателен 
|
|
|

24.01.2010, 20:35
|
|
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме: 389768
Репутация:
158
|
|
Он забыл знак доллара перед переменной ok
Это полнейший быдлокод. Я нифига не понял, что делает твой скрипт. Опиши подробно задачу скрипта.
У тебя есть файл кеев, в формате:
кей1
кей2
кей3
..
Ты вводишь кей в формочку и нажимаешь ок.
Он должен просто вывести ответ, нашел ли он такую запись в файле?
Последний раз редактировалось Solker; 24.01.2010 в 20:37..
|
|
|

24.01.2010, 20:40
|
|
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме: 39523
Репутация:
0
|
|
Спасибо огромное
но теперь Fatal error: Maximum execution time of 30 seconds exceeded
но файл с кеями не большей
|
|
|

24.01.2010, 20:43
|
|
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме: 39523
Репутация:
0
|
|
Solker
у меня файл с разноплановыми кеями я ввожу искомый кей и мне нужно чтобы он вывел все строки где встречаются слово или слова которые я ввел 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|