Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tytuł książki po numerze ISBN z merlin.pl, Problem z odpowiednim wyrażeniem regularnym
nexis
post 4.09.2007, 22:21:04
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Otóż mam taki kod:

  1. <?php
  2.  
  3. $isbn = '83-04-04772-1';
  4. $url = 'http://www.merlin.com.pl/frontend/browse/search/1.html?phrase=' . $isbn;
  5.  
  6. $html = file_get_contents($url);
  7.  
  8. preg_match("/<li class=\"idx\">(.*)</li>/", $html, $matches);
  9.  
  10. echo $matches[0]; // Historia życia prywatnego - tom 1. Od Cesarstwa Rzymskiego do roku tysięcznego
  11.  
  12. ?>


który ma posłużyć do wyciągnięcia tytułu książki z serwisu merlin znając numer ISBN książki. Mam jednak problem z ułożeniem odpowiedniego wyrażenia regularnego. Jakieś wskazówki dla mnie?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
klocu
post 5.09.2007, 06:47:13
Post #2





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

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


ew moznaby rozszerzyc zakres sciagajac takze wydawnictwo czyli <li class="tytul">(.?)<li class="cena">

ja to sobie rozpisałem na dwa wyrażenia:
Kod
<?php

$isbn = '83-04-04772-1';
$url  = 'http://www.merlin.com.pl/frontend/browse/search/1.html?phrase=' . $isbn;

$html = file_get_contents($url);

preg_match("#<li class=\"tytul\">(.*?)</li>#", $html, $matches);
preg_match("#<li>\n            (.*?)\n                        \n            </li>#", $html, $matches2);

print_r( $matches );
print_r( $matches2 );

?>


i działa bo w jednym wyrażeniu nie chce ża żadne skarby wyciągnąć nie wiedziec zreszta czemu...

Ten post edytował klocu 5.09.2007, 07:09:00
Go to the top of the page
+Quote Post
Kicok
post 5.09.2007, 09:43:41
Post #3





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
bo w jednym wyrażeniu nie chce ża żadne skarby wyciągnąć nie wiedziec zreszta czemu...


Jak dodasz flagę s do wyrażenia, to kropka będzie dopasowywana również do znaków nowej linii ("\n")


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
klocu
post 5.09.2007, 10:01:03
Post #4





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

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


W sumie masz rację ale jakoś tak było rano więc ;] ale i z tą opcją można wypróbować...
Go to the top of the page
+Quote Post
nexis
post 5.09.2007, 10:17:11
Post #5





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Dzięki - chodziło mi właśnie o coś takiego:

  1. <?php
  2.  
  3. $isbn = '83-04-04772-1';
  4. $url = 'http://www.merlin.com.pl/frontend/browse/search/1.html?phrase=' . $isbn;
  5.  
  6. $html = file_get_contents($url);
  7.  
  8. preg_match("#<li class=\"tytul\">(.*?)</li>#", $html, $matches);
  9.  
  10. echo strip_tags($matches[0]);
  11.  
  12. ?>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
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 Wersja Lo-Fi Aktualny czas: 3.07.2025 - 07:30