2011-12-19 19 views
7

Mam małe pytanie; W PHP Użyłem curl, aby uzyskać dane z adresem URL:Jak mogę uzyskać nazwę obrazu z adresu URL?

$url = "http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg"; 

Dzięki, że mogę używać curl_getinfo() który dał mi tablicę:

Array 
(
[url] => http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg 
[content_type] => image/jpeg 
[http_code] => 200 
[header_size] => 496 
[request_size] => 300 
[filetime] => -1 
[ssl_verify_result] => 0 
[redirect_count] => 0 
[total_time] => 2.735 
[namelookup_time] => 0.063 
[connect_time] => 0.063 
[pretransfer_time] => 0.063 
[size_upload] => 0 
[size_download] => 34739 
[speed_download] => 12701 
[speed_upload] => 0 
[download_content_length] => 34739 
[upload_content_length] => -1 
[starttransfer_time] => 1.282 
[redirect_time] => 0 
) 

Jak mogę uzyskać nazwę obrazu w linku [url] => http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg, takie jak

[image_name] : example 
[image_ex] : jpg 

Dzięki za wszelkie sugestie!

+0

Bezwzględnie to nie jest nazwa obrazu, ale jest to nazwa, którą większość przeglądarek dałaby, gdyby zachowała go przez większość czasu, ponieważ większość entites w Internecie nie ma nazw, ale prawdopodobnie jest to dobry wybór. Jeśli osoba odpowiedzialna za prelovac.com naprawdę chciała ustawić nazwę, użyłaby nagłówka treści. Chociaż przeglądarki mogą nadal zignorować to, jeśli chcesz dopasować to, co większość użytkowników zobaczy pliki zapisane jako, następnie sprawdź to i najpierw zbadaj informacje o ścieżce URI, jeśli są nieobecne. –

Odpowiedz

4
$url_arr = explode ('/', $arr['url']); 
$ct = count($url_arr); 
$name = $url_arr[$ct-1]; 
$name_div = explode('.', $name); 
$ct_dot = count($name_div); 
$img_type = $name_div[$ct_dot -1]; 

echo $name . " " . $img_type; 
+0

dzięki check123 – johnITBonuc

1
$URL = urldecode('http://www.greenbiz.com/sites/default/files/imagecache/wide_large/Woman_HORIZ.jpg?sunny=20$mal+1'); 
$image_name = (stristr($URL,'?',true))?stristr($URL,'?',true):$URL; 
$pos = strrpos($image_name,'/'); 
$image_name = substr($image_name,$pos+1); 
$extension = stristr($image_name,'.'); 
if($extension == '.jpg' || $extension == '.png' || $extension == '.gif' || $extension == '.jpeg'){`enter code here` 
print $image_name; 
} 
+0

Istnieją funkcje PHP, które mogą to zrobić za jednym razem. – transilvlad

-1
$imagePath = 'http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg'; 

$imageName = get_basename($imagePath); 

function get_basename($filename) 
{ 
    return preg_replace('/^.+[\\\\\\/]/', '', $imagePath); 
} 
3

rozważyć następujące jest ścieżka obrazu $ image_url = 'http://development/rwc/wp-content/themes/Irvine/images/attorney1.png'; z tego adresu URL, aby uzyskać nazwę obrazu z rozszerzeniem użyj następującej funkcji basename(); wygląd następujący kod kod

:

$image_url='http://development/rwc/wp-content/themes/Irvine/images/attorney1.png'; 
echo basename($image_url); 

wyjściowa: attorney1.png

0
$url ='http://hhhhhh.com/content/thees/Irvine/images/hdahdahat.png'; 
$img = explode(".", basename($url)); 

echo $img['0']; 
1

kiedyś URL ma dodatkowe parametry dołączone do niego. W takim scenariuszu możemy najpierw usunąć sekcję parametrów, a następnie możemy użyć wbudowanej funkcji PHPinfo(), aby uzyskać nazwę obrazu z adresu URL.

$url = 'http://images.fitnessmagazine.mdpcdn.com/sites/story/shutterstock_65560759.jpg?itok=b8HiA95H'; 

Sprawdź, czy adres URL obrazu ma dodane parametry.

if (strpos($url, '?') !== false) { 
    $t = explode('?',$url); 
    $url = $t[0];    
}  

zmienna url wynikające teraz zawierać

http://images.fitnessmagazine.mdpcdn.com/sites/story/shutterstock_65560759.jpg

Użyj pathinfo() aby pobrać żądane dane.

$pathinfo = pathinfo($url); 
echo $pathinfo['filename'].'.'.$pathinfo['extension']; 

Da to shutterstock_65560759.jpg jako wynik.

+0

Spróbuj dodać wyjaśnienia, aby poprawić jakość odpowiedzi – Minzkraut

Powiązane problemy