Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: gdzie kieruję url?
Forum PHP.pl > Forum > PHP
pandapl
Mam problem.
Jak sprawdzić gdzie kieruję dany link i wczytać do zmiennej jego przeznaczenie w php.
Chodzi mi o to, że mam przykładowo url: http://www.wrzuta.pl/aud/file2/zLvanJYLzv i teraz chcę za pomocą php sprawdzić pod jaki adres mnie on kieruję i nadać zmiennej $zmienna wartość docelową linku http://www.wrzuta.pl/aud/file2/zLvanJYLzv .
mike
Chcesz poznać docelową lokalizacją pliku do którego kieruje Cię link?
Niewykonalne.
wrzasq
jezeli chcesz sie dowiedziec na jaki plik na ich serwerze mapuje sie dany URL to jest to niewykonalne, ale rowniez nie jest ci to do niczego potrzebne.

natomiast jesli chodzi ci po prostu o naglowki HTTP dla tego pliku, ktore beda zawierac nazwe pod jaka w normalnej przegladarce sie zapisuje plik, to musisz skorzystac z $http_response_header.

  1. <?php
  2. $content = file_get_contents('*url*');
  3.  
  4. foreach($http_response_header as $header)
  5. {
  6. if( preg_match('/^Content-Disposition: .*?filename="?(.*?)"?/', $header, $fileName) )
  7. {
  8. $fileName = $fileName[1];
  9. }
  10. }
  11.  
  12. file_put_contents($fileName, $content);
  13. ?>
pandapl
problem z tym, ze ten skrypt wykonuje się w nieskończoność nie pokazując rezultatów.
Próbowałem po prostu aby za każdym razem podczas ściągania tego pliku dodawał on rozszerzenie .mp3
więc pomyślałem, że gdybym jakimś sposobem chociaż z nagłówka wydobyć Location
EDIT:
W końcu skrypt staną wykazując
Kod
Warning: file_put_contents() expects parameter 1 to be string, array given in /home/a2317831/public_html/pobierz.php on line 12
wrzasq
w takim razie sposob nieco inny:

  1. <?php
  2. $sock = fsockopen('wrzuta.pl', 80);
  3. fputs($sock, 'GET /aud/file2/zLvanJYLzv HTTP/1.1' . "r\n" . 'Host: wrzuta.pl' . "r\nr\n");
  4.  
  5. $location = '';
  6.  
  7. while(!feof($sock))
  8. {
  9. $line = fgets($sock);
  10. if( preg_match('/^Location: (.*)$/', $line, $temp) )
  11. {
  12. $location = $temp[1];
  13. break;
  14. }
  15. }
  16. ?>


ale to na prawde nie jest trudne, wiec skoro chcesz cos zrobic, to na poczatek polecam google.pl i zaczac samemu myslec, bo to co ci tutaj w dwoch przykladach podalem, to tak po prostu zwykle MYSLENIE, tutaj nie ma zadnych haczykow - wysylasz zapytanie i sprawdzasz odpowiedz, wiec zanim nastepnym razem zapytasz, to chociaz sie postaraj -.-'.
pandapl
ok, udało się dzięki choć nieco inaczej. Oj google pytałem o to przez cały czas ale w końcu udało mi się dotrzeć i znalazłem to co chciałem dzięki get_headers
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.