Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]preg_match_all
Forum PHP.pl > Forum > Przedszkole
666
Witam
Mam taki oto kod
CODE

<a href="http://domena.pl/index.php?option=com_registration&amp;task=lostPassword">
Lost Password?</a>

Chce wyciągnąć z niego tylko czyli to wszystko co jest za domena.pl a przed ">
CODE

index.php?option=com_registration&amp;task=lostPassword

Jak to zrobić napisałem coś takiego ale nie działa
  1. <?php
  2. preg_match_all('(<a href="http://?[^/]+(.+?)">Lost Password?</a>)', $ret, $match);
  3. $arr = $match[1];
  4. print_r($arr);
  5. ?>
dk1342
  1. <?php
  2. $string = '<a href="http://domena.pl/index.php?option=com_registration&amp;task=lostPassword">Lost Password?</a>';
  3. preg_match_all('/<a href="http://domena.pl/(.*)">Lost Password?/', $string, $match);
  4. echo $match[1][0]; // index.php?option=com_registration&task=lostPassword
  5. ?>
1010
parse_url" title="Zobacz w manualu PHP" target="_manual

  1. <?
  2.  
  3. $url = parse_url($twoj_link);
  4.  
  5. $url2 = $url[path].$url[query];
  6.  
  7. ?>
666
Co do dk1342 to kod chodzi ale tylko jak jest na lokalu .Jak już muszę się połączyć ze strona to kod przestaje działać. Oto kod
  1. <?php
  2. $q ="domena.pl/";
  3. $useragent  = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0';
  4. $ch = curl_init();
  5.  
  6.    curl_setopt($ch, CURLOPT_URL, $q);
  7.    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  8.    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9.    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  10.      $wynik= curl_exec($ch);
  11.      curl_close($ch);
  12.      //$wynik = '<tr>
  13.        //<td>
  14.        //    <a href="http://domena.pl/index.php?option=com_registration&amp;task=lostPassword">
  15.  
  16.        //        Lost Password?</a>
  17.    //    </td>
  18.    //</tr>
  19. //';
  20.  
  21.  
  22. preg_match_all('/<a href="http://domena.pl/(.*)">
  23.  
  24.                Lost Password?/', $wynik, $match);
  25. echo $match[1][0];
  26. ?>

A co do parse_url to nie moze byc bo adres jest niepełny ucina np amp w adresie
zegarek84
Kod
<?php
preg_match_all('/<a href="http:\/\/domena.pl\/([^"]*)">.*?Lost Password\?/is', $string, $match);
echo $match[1][0];
?>

i upewnij się czy na stronie w kodzie adres jest aby na pewno w podwójnym cudzysłowiu a nie w pojedyńczym - sprawdź to w operze bo mozilla prawie zawsze pokazuje podwójny nawet jeśli jest pojedyńczy....
666
Działa dzięki
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.