Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwarka w plikach HTML podswietla znalezione słowa
noiz
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Jak napisać wyszukiwarkę, która będze przeszukiwać pliki HTML po czym gdy znajdzie szukane słowo będzie zamieniać je na <font color=red>slowo</font>
[php:1:7bc075f9f4]<? $wynik = eregi_replace( $szukane_slowa, "<font color="red">$szukane_slowa</font>", $przeszukiwany_string); ?>[/php:1:7bc075f9f4]
Ta linijka zamienia znalezione słowa także wtedy kiedy są one elementami kodu HTML np jeśli szukane słowo to "HREF" to wtedy wszystko się wywala, czy ktoś ma jakiś pomysłquestionmark.gif
Go to the top of the page
+Quote Post
Lucky
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 2.03.2004
Skąd: Ziemia Giżycka

Ostrzeżenie: (0%)
-----


Wydaje mi się że dobrym wyjściem jest zrobienie listy takich znaczników, a następnie sprawdzanie czy wyszukiwane słowo to nie jedno z nich.

Inny sposób (ale nie wiem na ile może być wydajny) to pobierasz numer porządkowy znalezionego ciągu (numer pierwszego znaku) np. za pomocą strpos(), a nastepnie sprawdzasz, czy najbliższy znak za nim to '<', jeżeli nie to tego nie zamieniasz, a jeżeli tak to nadpisujesz. Sprawdzać możesz, np poprzez wycięcie wszystkiego co znajduje się od znalezionego numeru aż do końca pliku, np. za pomocą funkcji strstr(). Pierwsze wsytąpienie znaku znajdziesz przy pomocy strchr().


--------------------
My name is Luke... Lucky Luke
Go to the top of the page
+Quote Post
id4
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 1
Dołączył: --
Skąd: Rogożnik /K-ce/

Ostrzeżenie: (0%)
-----


Witam

Użyj tej funkcji, ewentualnie rozbuduj ją sobie.
Funkcja w tej postaci czyści z tekstu kod html i zawartość np. javascript.
[php:1:1799ca32ab]<?php
function clean($string){
$search=array("'<script[^>]*?>.*?</script>'si","'<[/!]*?[^<>]*?>'si");
$replace=array("","");
$string=preg_replace($search,$replace,$string);
return $string;
}
?>[/php:1:1799ca32ab]
Go to the top of the page
+Quote Post
noiz
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.04.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Chodzi mi o to zeby wczytac plik html do zmiennej co juz zrobilem, a potem wszystko czego szukam i co nie jest tagiem zamienic na np czerwone i wyrzucac zmienna jako html z pokolorowanymi wynikami wyszukiwania
Go to the top of the page
+Quote Post
Lucky
post
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 2.03.2004
Skąd: Ziemia Giżycka

Ostrzeżenie: (0%)
-----


Jeżeli o to chodzi, to sposób który podałem jest dobry.

Możesz ewentualnie zrobić w ten sposób:
Wczytujesz do jednej tablicy kolejne numery wystąpień znaku '<' a do drógiej odpowiednio kolejne numery wystąpień znaku '>'. Następnie odnajdujesz potrzebne słowa (tzn spisujesz numery ich wystąpień w ciągu) i sprawdzasz czy dany numer nie zawiera się pomiędzy każdym numerem z tablicy pierwszej i odpowiadającemu mu numerowi z drugiej. Mam nadzieję że nie zagmatwałem. :?


--------------------
My name is Luke... Lucky Luke
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:57