Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tytuł książki po numerze ISBN z merlin.pl
Forum PHP.pl > Forum > PHP
nexis
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?
klocu
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...
Kicok
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")
klocu
W sumie masz rację ale jakoś tak było rano więc ;] ale i z tą opcją można wypróbować...
nexis
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. ?>
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.