Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne - wyświetlanie linku
Forum PHP.pl > Forum > PHP
darala1
Witajcie,

mam problem z wyrażeniami regularnymi, chciałbym pobrać pewien link wykorzystując właśnie wyrażenia regularne.
Tak wygląda wyświetlana strona:

Kod
<textarea style=width:90%;height:50%>http://www.rs2rs.345.pl/index.php/rs2rs/1241/sfasffsa/261/78329255/action_replay__dvd__by_Kiko.rar</textarea>


Chciałbym wyświetlić z niej link, który widnieje pomiędzy textarea, próbowałem robić to w ten sposób:
  1. $file = 'http://rapidshare.com/files/78329255/action_replay__dvd__by_Kiko.rar';
  2. $nazwa = basename($file);
  3. $test ='http://www.rs2rs.345.pl';
  4. $c=curl_init();
  5. curl_setopt($c, CURLOPT_URL, $test);
  6. curl_setopt($c, CURLOPT_POST, true);
  7. curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
  8. curl_setopt($c, CURLOPT_HEADER, 0);
  9. curl_setopt($c, CURLOPT_POSTFIELDS, 'user='.$login.'&pass='.$password.'&files='.$file);
  10. $t = curl_exec($c);
  11. curl_close($c);
  12.  
  13. $wyrazenie = '/www.rs2rs.345.pl\/index.php\/rs2rs\/[a-zA-Z0-9]\/[a-zA-Z0-9]\/[a-zA-Z0-9]\/[a-zA-Z0-9]\/'.$nazwa;
  14. preg_match_all($wyrazenie, $t, $test);
  15. echo $test;

Bardzo proszę o pomoc.
Pozdrawiam.
zegarek84
wyrażenie:
'/<textarea[^>]+>([^<]+)<\/textarea>/us'
darala1
Niestety nie działa, wygląda to tak:

  1. $tt = 'http://rapidshare.com/files/78329255/action_replay__dvd__by_Kiko.rar';
  2. $test ='http://www.rs2rs.345.pl';
  3. $c=curl_init();
  4. curl_setopt($c, CURLOPT_URL, $test);
  5. curl_setopt($c, CURLOPT_POST, true);
  6. curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3");
  7. curl_setopt($c, CURLOPT_HEADER, 0);
  8. curl_setopt($c, CURLOPT_POSTFIELDS, 'user='.$login.'&pass='.$password.'&files='.$tt);
  9. $t = curl_exec($c);
  10. curl_close($c);
  11.  
  12. $wyrazenie = '/<textarea[^>]+>([^<]+)<\/textarea>/us';
  13. preg_match_all($wyrazenie, $t, $test);
  14. print_r($test);


Tablica pokazuje:
Kod
Array ( [0] => Array ( ) [1] => Array ( ) )
zegarek84
może wyświetl jeszcze źródło strony dla pewności i sprawdź ręcznie.... - coś mi się wydaje, że powinno działać winksmiley.jpg
darala1
Zrobiłem teraz, aby curl zapisywał zawartość otwieranej strony w txt, tylko jak teraz otworzyć plik i wykorzystać preg_match_all skoro są w tym txt elementy pliku html.
zegarek84
nie musiałeś tego zapisywać do pliku txt - prosiłem tylko byś sprawdził źródło - zamiast tego źródło wyświetl np. na swojej stronie i zerknij czy jest ten textarea - po prostu może Cię przekierowuje gdzie indziej - na pewno dobrze weszłeś curl'em tak jak przeglądarką na ta stronę?? - takie jest moje pytanie - dlatego o źródła też pytałem czy widzisz w kodzie pobranym przez curl pole textarea....
darala1
Tzn. dziwne jest to, że strona prawidło się wyświetla, ale jak daje echo $t, czyli wywołuje gdzieś curla to nie wiem dlaczego zwraca 1.
no_face
Dodaj opcje dla curl'a:

  1. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
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.