Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pobranie nazwy z adresu url
Forum PHP.pl > Forum > Przedszkole
tofik1778983
Jak najprościej pobrać nazwę np programu z adresu url..
przykładowo mamy link:
Kod
http://www.jakis_adres.pl/tmp/files/nazwa_programu.exe

Chciałbym pobrać samą nazwę, czyli tylko to co jest po ostatnim slashu z rozszerzeniem.
Oczywiście linki jakto linki będą różnej budowy..
zrobiłem tak:
Kod
$nazwa = end(explode('/', $_POST['link']));

Z kolei jeśli link będzie wyglądał np:
Kod
http://www.jakis_adres.pl/costam?tmp=1&files=x&qwe=nazwa_programu.exe

to już komplikuje.. co radzicie questionmark.gif
krzotr
parse_url

  1. <?php
  2. print_r( parse_url('http://www.jakis_adres.pl/costam?tmp=1&files=x&qwe=nazwa_programu.exe') );
  3.  
  4. /*
  5. Array
  6. (
  7.   [scheme] => http
  8.   [host] => www.jakis_adres.pl
  9.   [path] => /costam
  10.   [query] => tmp=1&files=x&qwe=nazwa_programu.exe
  11. )
  12. */
  13.  
  14. print_r( parse_url('http://www.jakis_adres.pl/tmp/files/nazwa_programu.exe') );
  15.  
  16. /*
  17. Array
  18. (
  19.   [scheme] => http
  20.   [host] => www.jakis_adres.pl
  21.   [path] => /tmp/files/nazwa_programu.exe
  22. )*/


Klucz 'path'
jaslanin
Żeby dobrze rozwiązać to zadanie musisz mieć jakieś konkretne informacje, albo zbiór wszystkich możliwych schematów adresu url, lub reguły zapisu nazwy pliku dla wszystkich url'i dla których to ma działać. Dla tych dwóch adresów i założenia że nazwa programu to azAZ09_.exe można to zrobić tak.

Kod
<?php

function programNameFromURL ($url) {
    preg_match("/(\w)*\.exe$/", $url, $matches);
    return $matches[0];
}

echo programNameFromURL('http://www.jakis_adres.pl/costam?tmp=1&files=x&qwe=nazwa_programu.exe');

?>


Ale łatwo sobie wyobrazić url:

http://www.jakis_adres.pl/pokaz_plik_nazwa_programu.exe dla którego ta funkcja zwróci błędny wynik.
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.