ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Нужна малюсенькая помощь по готовому скрипту
  #1  
Старый 24.01.2010, 20:02
Аватар для newold
newold
Новичок
Регистрация: 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($fileLOCK_SH);
flock($fileLOCK_UN);
$i 0;
while (!
feof($file)){
$arr[$i] = fgets($file200);
$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. и как сделать чтоб он выводил уже перемешаными искомые кеи.

Огромное спасибо Всем кто откликнется .
 
Ответить с цитированием

  #2  
Старый 24.01.2010, 20:10
Аватар для Alv
Alv
Познающий
Регистрация: 30.01.2007
Сообщений: 69
Провел на форуме:
1405367

Репутация: 47
Отправить сообщение для Alv с помощью ICQ
По умолчанию

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

  #3  
Старый 24.01.2010, 20:14
Аватар для newold
newold
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме:
39523

Репутация: 0
По умолчанию

Вы конечно извените а куда это вставить ? (краснеющий смайлик)
 
Ответить с цитированием

  #4  
Старый 24.01.2010, 20:18
Аватар для Solker
Solker
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме:
389768

Репутация: 158
По умолчанию

не поленился бы, код отформатировал. Абсолютно не читаемый.

if ((isset($_GET["key"]))&&(!empty($_GET["key"]))){

$i = 0;
for ($i=0;...


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

  #5  
Старый 24.01.2010, 20:19
Аватар для newold
newold
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме:
39523

Репутация: 0
По умолчанию

этот код мне посоветовали на этом сайте , а почему не читаемый ?
 
Ответить с цитированием

  #6  
Старый 24.01.2010, 20:23
Аватар для WNZRS
WNZRS
Участник форума
Регистрация: 03.09.2009
Сообщений: 179
Провел на форуме:
1014907

Репутация: 90
Отправить сообщение для WNZRS с помощью ICQ
По умолчанию

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($fileLOCK_SH);
flock($fileLOCK_UN);
$i 0;
while (!
feof($file)){
$arr[$i] = fgets($file200);
$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]) === FALSEok 0;
if(
ok == 1)
echo 
$arr[$i] . "<br>";
}
}
else{
echo 
"Not Found";
}
}
?>
если я ничего не напутал, то он ищет каждое слово и если все слова есть в строке, строка выводится
 
Ответить с цитированием

  #7  
Старый 24.01.2010, 20:33
Аватар для newold
newold
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме:
39523

Репутация: 0
По умолчанию

WNZRS

выдает ошибку в этой строке if (strpos($arr[$i], $keys[$j]) === FALSE) ok = 0;

Parse error: syntax error, unexpected '='

не мог бы посмотреть в чем проблема ? буду очень признателен
 
Ответить с цитированием

  #8  
Старый 24.01.2010, 20:35
Аватар для Solker
Solker
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме:
389768

Репутация: 158
По умолчанию

Он забыл знак доллара перед переменной ok

Это полнейший быдлокод. Я нифига не понял, что делает твой скрипт. Опиши подробно задачу скрипта.
У тебя есть файл кеев, в формате:
кей1
кей2
кей3
..
Ты вводишь кей в формочку и нажимаешь ок.
Он должен просто вывести ответ, нашел ли он такую запись в файле?

Последний раз редактировалось Solker; 24.01.2010 в 20:37..
 
Ответить с цитированием

  #9  
Старый 24.01.2010, 20:40
Аватар для newold
newold
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме:
39523

Репутация: 0
По умолчанию

Спасибо огромное

но теперь Fatal error: Maximum execution time of 30 seconds exceeded

но файл с кеями не большей
 
Ответить с цитированием

  #10  
Старый 24.01.2010, 20:43
Аватар для newold
newold
Новичок
Регистрация: 28.04.2009
Сообщений: 21
Провел на форуме:
39523

Репутация: 0
По умолчанию

Solker

у меня файл с разноплановыми кеями я ввожу искомый кей и мне нужно чтобы он вывел все строки где встречаются слово или слова которые я ввел
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь A_n_d_r_e_i Болталка 2 16.10.2009 09:59
Господа гуру PHP программирования нужна ваша помощь mss-s PHP, PERL, MySQL, JavaScript 28 31.03.2009 16:25
Нужна ваще помощь XP jks Windows 12 22.01.2009 00:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ