Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Mała pomoc przy wyrażeniach regularnych
Forum PHP.pl > Forum > Przedszkole
motyl-pl
<a href="http://asd123.pl">http://asd123</a>
<a target="_blank" rel="nofollow" href="http://tcz.pl">http://tcz.pl</a>

  1. $tresc = file_get_contents('www');
  2. preg_match_all('/<a rel=\"nofollow\".*href=\"(.*)\".*>/iU', $tresc, $linki);
  3. print_r($linki);


Potrzebuje pobrać drugi link gdzie jest "nofollow", czy ktoś by mi mógł poprawić/pomóc poprawić moje wyrażenie regularne ?
motyl-pl
Zajebiste dzięki =)

W ostateczności skorzystałem z tego:
http://simplehtmldom.sourceforge.net/
Polecam wszystkim którzy musza parsować html a nie chca preg matha czy innego shitu.
bigZbig
Czasami użycie wielkiej biblioteki do parsowania drzewa dom jest nadmiarowe i okazuje się, że użycie wyrażeń regularnych jest lepszym rozwiązaniem

  1. <?php
  2. preg_match_all('/<a([\w\d\s-_"=]*)?href="(?P<url>.*)"([\w\d\s-_"=]*)?>/iU', '<a href="http://asd123.pl">http://asd123</a> <a target="_blank" rel="nofollow" href="http://tcz.pl">http://tcz.pl</a>', $result);
  3. var_dump($result['url']);
  4. ?>
motyl-pl
Łatwość użycia tej biblioteki przeważa nad jej wielkością:

  1. <?php
  2. include_once('simple_html_dom.php');
  3.  
  4. $html = file_get_html('http://link z którego chcemy pobrać link nofollow');
  5.  
  6. // Find all links
  7. foreach($html->find('a') as $element) {
  8. if($element->rel == "nofollow")
  9. echo $element->href . '<br>';
  10. }
  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.