Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] preg_match() - źle napisane wyrażenie regularne....
qba10
post
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


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"/>


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
nowotny
post
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


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





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


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. ?>


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
antyqjon
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

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


Zamiast echo użyj print_r i sam zobacz gdzie znajduje się to co Ci potrzeba (hint: indeks równy 1).


--------------------
Zbyszek 'antyqjon' Siciarz

siciarz.net | Aquila DSP C++
Go to the top of the page
+Quote Post
qba10
post
Post #5





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


Sorka troche nie kumam.
Wynik dał "Array ( )"
I nadal niekumam co jest źle ;(


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
nowotny
post
Post #6





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


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





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


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()"


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
dyniaq
post
Post #8





Grupa: Zarejestrowani
Postów: 34
Pomógł: 4
Dołączył: 31.07.2006
Skąd: Oława

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


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.


--------------------
~ kim jest Ta, co mi w oczach zasadza takie drzewo? ~
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 02:33