Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_match() - źle napisane wyrażenie regularne....
Forum PHP.pl > Forum > Przedszkole
qba10
Jak poprawić to wyrażenie:
  1. <?php
  2. $w = preg_match('<div id="res">.*</div><br clear="all"/>',$dane ,$m
  3. );
  4. ?>

aby wydobyć tekst miedzy:
Kod
<div id="res"> a </div><br clear="all"/>
nowotny
Po pierwsze, delimitery i modifier...
Po drugie, łapiesz co chcesz w nawiasy...
  1. <?php
  2. $w = preg_match('#<div id="res">(.*)</div><br clear="all"/>#U',$dane ,$m);
  3. ?>
qba10
Czy to co podał @nowotny jest poprawne?

Mam taki skrypt, który zamiast wyświetlić fragment wyników z google wyświetla: "Array"

Oto kod
  1. <?php
  2. $zapytanie = $_POST['zapytanie'];
  3. $zapytanie = str_replace(' ', '+', $zapytanie);
  4. $dane = file_get_contents('http://www.google.pl/search?hl=pl&q='.$zapytanie.'&btnG=Szukaj&lr=');
  5. $w = preg_match('#<div id="res">(.*)</div><br clear="all"/>#U',$dane ,$m);
  6. echo $m;
  7. ?>
antyqjon
Zamiast echo użyj print_r i sam zobacz gdzie znajduje się to co Ci potrzeba (hint: indeks równy 1).
qba10
Sorka troche nie kumam.
Wynik dał "Array ( )"
I nadal niekumam co jest źle ;(
nowotny
Cytat(qba10 @ 24.07.2008, 20:56:12 ) *
I nadal niekumam co jest źle ;(

W zależności od wyników zapytania do google w źródle brakuje albo początku albo końca wzorca... musisz znaleźć jakiś inny ciąg znaków to wzorca...
qba10
Pisząc o wzorcu masz na myśli <div id="res"> i </div><br clear="all" > ?
Jeżeli tak to one są takie same bezwzględu na to jakie hasło podamy do wyszukania.
Próbowałem też innych wzorców (nawet <html> i </html>) ale wynik zawsze był "array" lub "array()"
dyniaq
No bo echo nie wydrukuje Ci zawartości tablicy (a $m takową jest) tylko typ (dlatego array Ci się wyświetla). Albo print_r() jak ktoś już napisał, albo np. echo $m[0]. Ewentualnie w pętli foreach wyświetlisz sobie wszystkie pozycje z tabeli.
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.