Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Regexp i wyciąganie fragmentu strony
tmgryf
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 14.02.2009

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.
Go to the top of the page
+Quote Post
peter13135
post
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


'/<head>[[:print:]]</head>/'

o takie coś chodzi?
Go to the top of the page
+Quote Post
tmgryf
post
Post #4





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 14.02.2009

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


  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?

Ten post edytował tmgryf 2.03.2009, 22:56:51
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Dodaj modyfikatory si do wzorca.
Go to the top of the page
+Quote Post
tmgryf
post
Post #6





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 14.02.2009

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


po dodaniu modyfikatorów:
preg_match('/\<head\>[[:print:]]\<\/head\>/si',$strona,$wy);

pobrano
array(0) { }

Ten post edytował tmgryf 2.03.2009, 23:10:57
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A skorzystałeś z preg_quote" title="Zobacz w manualu PHP" target="_manual, jak wspomniałem?
Go to the top of the page
+Quote Post
zegarek84
post
Post #8





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


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. ?>
Go to the top of the page
+Quote Post
tmgryf
post
Post #9





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 14.02.2009

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


Kocham Cię :*
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:16