Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwanie i problem ze str_replace
Forum PHP.pl > Forum > PHP
pixsoul
witam,

mam nadzieje ze zamieszczam to w dobrym miejscu na forum,
mam 2 problemy:

1) mam na stronie zrobiona wyszukiwarke, w której mozna podac dowolna tresc, a skrypt bedzie go szukal w długich stronach mojego serwisu. nastepnie pokazuje wyniki, zeby nie zajmowaly za duzo miejsca limituje ciag za uzyciem substr. zamieniam <br /> na &nbsp, zeby nie robil nowej linii ale ladny odstep i to wszystko mi ladnie dziala

problem nastepuje kiedy mam obrazki, nie chce ich pokazywac w wynikach. jak moge ustawic kod php aby nie wyswietlal calych tagów <img /> od samego poczatku az do konca, łacznie ze stylami, rozmiarami, altami itd. chce żeby po prostu to ominął, jednak za kazdym razem taki tag jest inny jak mam to zrobic ?

2) przy pokazywaniu wyników jak juz pisalem ograniczam ilość tekstu na stronie, problem polega na tym ze chchcialbym pokazac ten fragment w którym występuje ów wyraz (lub pierwszy z nich jesli jest ich kilka) na stronie, a nie zaś sam poczatek tesktu (czasami sa one naprawde dlugie i to co jest na poczatku nie ma sie za bardzo do tego co jest na koncu)

bardzo prosze o pilna pomoc.

pozdrawiam
sobstel
Cytat(pixsoul @ 2006-02-14 23:59:09)
problem nastepuje kiedy mam obrazki, nie chce ich pokazywac w wynikach. jak moge ustawic kod php aby nie wyswietlal calych tagów <img /> od samego poczatku az do konca, łacznie ze stylami, rozmiarami, altami itd. chce żeby po prostu to ominął, jednak za kazdym razem taki tag jest inny jak mam to zrobic ?

wyrazenia regularne (preg) powinny tu przyjsc z pomocą...

Cytat
2) przy pokazywaniu wyników jak juz pisalem ograniczam ilość tekstu na stronie, problem polega na tym ze chchcialbym pokazac ten fragment w którym występuje ów wyraz (lub pierwszy z nich jesli jest ich kilka) na stronie, a nie zaś sam poczatek tesktu (czasami sa one naprawde dlugie i to co jest na poczatku nie ma sie za bardzo do tego co jest na koncu)


pomysl mam taki :

  1. <?php
  2.  
  3. substr($string, strpos($string, $szukany_wyraz) - 20, $length)
  4.  
  5. ?>


wtedy zaczyna cięcie 20 znaków przed pierwszym napotkaniem szukanego wyrazu.

oczywiście w powyzszym przykladzie trzeba sie zabezpieczyc jeszcze na wypadek gdyby szukany wyraz znalazl sie w pierwszych 20 znakach (tzn. zeby nie bylo wtedy wartosci ujemnych, a po prostu 0).
pixsoul
wielkie dzieki, z wyrazeniami regularnymi sobie poradze, jednak czy moze mi ktoś podpowiedzieć jak moge sprawdzić wlasnie to o czym napisał SOPEL i jak sprawdzić czy wyszukiwana fraza nie wystepuje wlasnie w tych -20 znakach ?
sobstel
np.
  1. <?php
  2. $before = 20;
  3. $start = strpos($string, $szukany_wyraz);
  4. substr($string, (($start < $before) ? 0 : ($start - $before)), $length)
  5. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.