ďťż
Podstrony
|
telcocafeW 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. |
|||
Sitedesign by AltusUmbrae. |