IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   найти всё : ) на РНР (http://www.imho.ws/showthread.php?t=17089)

lanix 04.12.2002 08:52

найти всё : ) на РНР
 
как бы огранизовать простенький поиск на сайте не используя MySQL и других баз ?

Stasik 04.12.2002 10:30

можно открывать все файлы и искать eregi..... или индексировать но это геморно.... поиск можно написать строк в 15 :)

lanix 04.12.2002 18:33

в 15 строк? :) чего-то не верится.. а если и возможно : то расшифруй :)

Stasik 05.12.2002 01:02

ну... лана ну может не 15 ;)

Код:

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && eregi(".html", $file)) {
        $fp = @fopen($file,"rb");
        $cont = fread($fp,filesize($file);
          fclose($fp);
          if(eregi($string,$cont)){echo "$string found in $file\n";}
        }
    }
    closedir($handle);
}
?>

ну 13..... :xex:

lanix 05.12.2002 04:12

скрипт должен искать слово попадающееся в файлах находящихся в одной дирректории ?.. а форму создать так ?:

<form name="form1" method="post" action="result.php">
<input type="text" name="string">
<input type="submit" name="Submit" value="Submit">
</form>

???

AA666 05.12.2002 04:30

http://risearch.org/ - Free script written in PHP for small sites (up to 5000 pages). Does not requre database backend for index storage.

Stasik а в тэгах тоже будем искать?

Stasik 05.12.2002 05:25

lanixov - да... будет искать только в .html файлах
AA666 - а что с тегами плохо? :xex: зато он без индексации
ну да лaдно если та такой умный :xex:

добавить после
$cont = fread($fp,filesize($file);
Код:

$search = array ("'<script[^>]*?>.*?</script>'si",
                "'<[\/\!]*?[^<>]*?>'si",
                "'([\r\n])[\s]+'",
                "'&(quot|#34);'i",
                "'&(amp|#38);'i",
                "'&(lt|#60);'i",
                "'&(gt|#62);'i",
                "'&(nbsp|#160);'i",
                "'&(iexcl|#161);'i",
                "'&(cent|#162);'i",
                "'&(pound|#163);'i",
                "'&(copy|#169);'i",
                "'&#(\d+);'e");
$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");
$cont = preg_replace ($search, $replace, $cont);


AA666 05.12.2002 23:45

Stasik проще надо быть, проще :)

preg_replace("/<[^>]*>/s","",$cont);

Stasik 06.12.2002 18:18

а HTML символы? :xex:

AA666 06.12.2002 22:57

а что html символы? если русские буквы у него поменяны на умляуты тада да, а иначе зачем они нам? но если очень нада, то

$table = array_flip(get_html_translation_table (HTML_ENTITIES));
$cont = strtr($cont, $table);

13+2=15, как ты и обещал :)

а ещё мона сделать перед выводом результатов
eregi_replace ("(".$string.")", "<font color=red>\\1</font>", $сont);
но это уже баловство

RaZEr 06.12.2002 23:44

Не забудьте таймаут в настройках переставить ...


Часовой пояс GMT +4, время: 20:09.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.