Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Regexp i wyciąganie fragmentu strony
Forum PHP.pl > Forum > Przedszkole
tmgryf
Wiem że nie przyzwoicie robię, ale dziś spędziłem sporo czasu próbując i bez rezultatów.....

Mam w zmiennej $x zapisaną stronę jakąśtam i chcę wyciągnąć z niej wartość z tabeli która jest w divie - naprawdę próbowałem ale nie potrafię tego zrobić za pomocą preg_match

Może ktoś pokazać jak za pomocą takiego wyrażenia wyciągnąć np <HEAD> zawartość </HEAD> bo wtedy z resztąsobie jakoś poradzę...

Z góry proszę o zrozumienie i wybaczenie
erix
Odpowiednio zaescape'uj znaki specjalne. Co escape'ować, to się dowiesz po przepuszczeniu "stałego" ciągu znaków przez preg_quote" title="Zobacz w manualu PHP" target="_manual. Reszta składni wyrażeń jest szeroko opisana w Sieci, nawet w materiałach polskojęzycznych.
peter13135
'/<head>[[:print:]]</head>/'

o takie coś chodzi?
tmgryf
  1. <?php
  2. if ($stream = fopen('http://wp.pl', 'r'))
  3. {
  4.    $strona=stream_get_contents($stream);
  5.    fclose($stream);
  6.    echo "pobrano<br>";
  7. }
  8. else
  9. echo "niepobrano";
  10. preg_match('/<head>[[:print:]]</head>/',$strona,$wy);
  11. var_dump($wy);
  12. ?>


i dostaje na wyjsciu :
pobrano
array(0) { }


Robię coś nie tak? pewnie powinienem użyć innej funkcji?
erix
Dodaj modyfikatory si do wzorca.
tmgryf
po dodaniu modyfikatorów:
preg_match('/\<head\>[[:print:]]\<\/head\>/si',$strona,$wy);

pobrano
array(0) { }
erix
A skorzystałeś z preg_quote" title="Zobacz w manualu PHP" target="_manual, jak wspomniałem?
zegarek84
Cytat(tmgryf @ 2.03.2009, 22:31:06 ) *
Mam w zmiennej $x zapisaną stronę jakąśtam i chcę wyciągnąć z niej wartość z tabeli która jest w divie...

Może ktoś pokazać jak za pomocą takiego wyrażenia wyciągnąć np <HEAD> zawartość </HEAD> bo wtedy z resztąsobie jakoś poradzę...

wątpię gdyż to już będzie inne wyrażenie regularne - choć w 80% jeśli akurat taka będzie struktura to to wyrażenie będzie pasowało a zamienisz w nim tylko główne nazwy, pozatym [:print:] - w head nie masz żadnych wyświetlanych/drukowalnych znaków ;p

żeby widzieć że coś się pobrało przetworzyłem znaczniki html i preformatowałem tekst:
  1. <?php
  2. if ($stream = fopen('http://wp.pl', 'r'))
  3. {
  4.   $strona=stream_get_contents($stream);
  5.   fclose($stream);
  6.   echo "<b>pobrano:</b><br>";
  7. }
  8. else
  9. echo "niepobrano";
  10. preg_match('/<head>(.*?)</head>/si',$strona,$wy);
  11. echo '<pre>'.htmlspecialchars($wy[1]).'</pre>';
  12. ?>
tmgryf
Kocham Cię :*
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.