Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Pobieranie docelowego odnośnika
lechup
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2002
Skąd: K-ów

Ostrzeżenie: (0%)
-----


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...


--------------------
PHPBP Team Member
Mnóstwo darmowe programy i inne programy download.
Go to the top of the page
+Quote Post
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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

Ten post edytował badme 4.02.2005, 08:45:05
Go to the top of the page
+Quote Post
crash
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




hm... czyli jednak nie wiedziałem co sie dzieje smile.gif
Go to the top of the page
+Quote Post
lechup
post
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2002
Skąd: K-ów

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował lechup 4.02.2005, 13:41:51


--------------------
PHPBP Team Member
Mnóstwo darmowe programy i inne programy download.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 13:56