Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znajdowanie wyrażeń w źródle strony
Forum PHP.pl > Forum > PHP
anomander
Witam! Mam prośbę, piszę skrypt którego zadaniem jest znajdowanie na danej stronce adresu url do podstrony kontakt (o ile taka podstrona istnieje). Rozwiązuję ten problem za pomocą wyrażeń regularnych, ale coś nie chce zaskoczyć:/

Innymi słowy, szukam w źródle strony wyrażenia typu:
  1. <a href="link">kontakt</a>


lub, bardziej skomplikowanie:

  1. <A style="costam" href="link" jakas_opcja="jakis_param">kontakt</a>


I musze wyłuskać frazę 'link'
Skleciłem takie coś:

  1. <?php
  2. preg_match('/<[aA].*href="(.*)".*>kontakt</[aA]>/i', $zrodlo, $link)
  3. ?>

a także eksperymentowałem z upraszczaniem:

  1. <?php
  2. preg_match('/href="(.*)".*>kontakt/i', $zrodlo, $link)
  3. ?>


oraz z 'leniwymi' wyrażeniami:

  1. <?php
  2. preg_match('/<[aA].*?href="(.*?)".*?>kontakt</[aA]>/i', $zrodlo, $link)


  1. <?php
  2. preg_match('/<[aA].*?href="([a-zA-Z0-9/.-]*)".*?>kontakt</[aA]>/i', $zrodlo, $link)


a także z różnymi kombinacjami i nie chce działać.
Proszę o wszelaką pomoc smile.gif
tommy4
Kod
preg_match('/<(?:a|A).*?href="([^"]*)".*?>kontakt<\/(?:a|A)>/', $kod, $m);


?
anomander
Też nie działa:/:/:/

Pół biedy jak jest wariant prosty <a href="link">kontakt</a>, wtedy wyłapuje (a i to nie zawsze), a jak są dodatkowe parametry w znaczniku <a> to masakra...
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.