Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pobieranie docelowego odnośnika
Forum PHP.pl > Forum > PHP
lechup
Witam!

Mam taki problemik chcę pobrać link "bezwzględny" tj. bez żadnych przesyłaczy hederami php albo META EQUIVEM. Może żeby lepiej powiedzieć o co mi chodzi dam przykład:

Jest link:
http://www.free-codecs.com/download_soft.php?d=23&s=40

A ja chce z tego uzyskać:
http://download.divx.com/divx/DivX521XP2K.exe - to jest plik docelowy

Jest możliwe zrobienie czegoś takiego? Próbowałem czytać plik, ale hedery przerzucają czytanie na sam plik, a czytanie pliku jest zbyteczne... :] nie o to mi chodzi...
Ociu
Mój skromny, nowatorski pomysł....
link: costam.pl/get.php?p={np. 40}
Baza wygląda tak:
Kod
id_prod | 40
link | http://download.divx.com/divx/DivX521XP2K.exe


robi się coś takiego

  1. <?php
  2.  
  3. $id = $_GET['p'];
  4. $sql = mysql_query(&#092;"SELECT * FROM programy WHERE id_prod='\".$id.\"'\");
  5. while($r=mysql_fetch_array($sql))
  6. {
  7. header(&#092;"location:\". $r['link']); /* tu chcialbym zaznaczyc czy nie wiem czy tak mozna */
  8. }
  9.  
  10. ?>

Napewno gdzieś jest bład ponieważ jest 8:40 i niezabardzo wiem co sie dzieje smile.gif
crash
badme: w ogóle nie o to chodzi biggrin.gif

  1. <?php
  2. if($f = @fsockopen('www.free-codecs.com', 80, $errno, $errstr, 10))
  3. {
  4. $put = &#092;"GET /download_soft.php?d=23&s=40 HTTP/1.1rn\";
  5. $put .= &#092;"Host: www.free-codecs.comrnrn\";
  6.  
  7. fwrite($f, $put);
  8.  
  9. while($l < 10)
  10. {
  11. $linia = trim(fgets($f));
  12.  
  13. if(preg_match('#^Location: .+$#i', $linia))
  14. {
  15. break;
  16. }
  17. $l++;
  18. }
  19. fclose($f);
  20.  
  21. $plik = str_replace('Location: ', '', $linia);
  22. }
  23.  
  24. echo $plik;
  25. ?>
Ociu
hm... czyli jednak nie wiedziałem co sie dzieje smile.gif
lechup
Wielkie dzięki crashu ;] dokładnie o to chodziło!!

PS: Badme - dzięki za zainteresowanie problemem ale czytaj dokładniej a nie po łebkach :]

Troszkę zmieniłem kodzik i coś takiego wyszło u mnie działa lepiej - tamten nie do wszystkich plików chciał działać... wyświetlał czasami datę z nagłówków

  1. <?php
  2.  
  3. $d->path='http://www.free-codecs.com/download_soft.php?d=23&s=40';
  4. $url=parse_url($d->path);
  5.  
  6.  if($f = @fsockopen($url[host], 80, $errno, $errstr, 10))
  7.  {
  8.  
  9. $put = &#092;"GET $url[path]?$url[query] HTTP/1.1rn\";
  10. $put .= &#092;"Host: $url[host]rnrn\";
  11. fwrite($f, $put);
  12.  
  13. $plik=fread($f, 1024);
  14. $plik=preg_match(&#092;"#(.*)Location: http://(.*)rn#isU\", $plik, $match);
  15. $plik=&#092;"http://\".$match[2];
  16.  }
  17.  
  18.  echo $plik.&#092;"<BR>\";
  19. ?>
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.