ďťż

[php] wyszukiwanie wszystkich wystpien w teks

       

Podstrony


telcocafe

W zmiennej $tekst mam zapisany kod źródłowy strony np:
<P>Rozdzial 1: Wstep</P> <P>jakas tresc jakas tresc jakas tresc</P> <P>Rozdzial 2: Rozwiniecie</P> <P>jakas tresc jakas tresc jakas tresc</P> <P>inna tresc inna tresc inna tresc</P> <P>Rozdzial 3: Zakonczenie</P>
Mam też tablicę $rozdzialy i pytanie jak sprawić żeby w każdym kolejnym elemencie tablicy pojawiły się rozdział (tzn żeby tablica wyglądała tak:
$rozdzialy[1] => "Rozdzial 1: Wstep", $rozdzialy[2] => "Rozdzial 2: Rozwiniecie", $rozdzialy[3] => "Rozdzial 3: Zakonczenie",
Wymyśliłem żeby znaleźć w stringu ($tekst) każde wystąpienie słowa "Rozdzial" i wkleić do tablicy zawartość całego znacznika < P > < / P > w którym ten wyraz się znajduje bez samych znaczników. Tylko jak ?! :/
Użytkownik OGGY_Lwiatko_89 edytował ten post 14 marzec 2008, 18:54


$tekst=strip_tags($tekst); $tekst=explode("\n", $tekst); $rozdzialy=array(); foreach($tekst as $linia) { $linia=trim($linia); if(preg_match('/^Rozdzial/', $linia, $match)) $rozdzialy[]=$linia; }
Użytkownik polasek edytował ten post 14 marzec 2008, 19:08
ale jeśli będzie coś takiego:
<P>i tak oto zaczyna się Rozdzial 4: Przygody Z Boberem. (Antonim)</P>
to mi już nie znajduje :/ ... da się zrobić żeby powyższe znajdywało i wpisywało do tableki $rozdziały coś takiego "Rozdzial 4: Przygody Z Boberem." (czyli zaczyna od słowa "Rozdzial" a kończy na kropce) ?

$tekst=strip_tags($tekst); $tekst=explode("\n", $tekst); $rozdzialy=array(); foreach($tekst as $linia) { $linia=trim($linia); if(preg_match('/^Rozdzial/', $linia, $match)) $rozdzialy[]=$linia; else if(preg_match_all('/Rozdzial [0-9]+(.*)\\./', $linia, $match)) { $rozdzialy[]=$match[0]; } }



nie działa mi to :/ ... wyszukuje te rozdziały które nie są poprzedzone tekstem ale jeśli przed napisam "Rozdział X: nazwa_rozdziału." coś jest to nadal nie wyszukuje.

Działa . Mogłeś zobaczyć za pomocą print_r zawartość $rozdzialy i widzialbyś jak wnieść poprawke :P
$tekst=strip_tags($tekst); $tekst=explode("\n", $tekst); $rozdzialy=array(); foreach($tekst as $linia) { $linia=trim($linia); if(preg_match('/^Rozdzial/', $linia, $match)) $rozdzialy[]=$linia; else if(preg_match_all('/Rozdzial [0-9]+(.*)\\./', $linia, $match)) { $rozdzialy[]=$match[0][0]; } }

Prosze :)

a czemu jak zmiennej $tekst przypisze wartość w ten sposób:
$tekst = readfile('http://oggylwiatko.webpark.pl/strona.html');
to nie działa ?? btw ... to normalne że ta linijka wyświetla źródło strony ?!
Użytkownik OGGY_Lwiatko_89 edytował ten post 22 marzec 2008, 08:39
php.net/readfile

A czemu nie możesz poczytać manuala??

http://pl2.php.net/file sluzy do odczytu pliku do tablicy.

Użyj file_get_contents('strona.php'); Działa w wersji PHP 5. To jest to samo co użycie fopen, fread, fclose.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.