2011-12-19 2 views
7

У меня есть небольшой вопрос; В PHP я использовал локон, чтобы получить данные из URL:Как я могу получить имя изображения из URL-адреса?

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

С этими словами я использую curl_getinfo(), который дал мне массив:

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 
) 

Как я могу получить имя изображения в ссылке [url] => http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg, таких как

[image_name] : example 
[image_ex] : jpg 

Благодарим за предложение!

+0

Строго говоря, это не имя изображения, хотя это имя, которое большинство браузеров предоставили бы, если бы они сохраняли его большую часть времени, потому что большинство сайтов в Интернете не имеют имен, но это, вероятно, будет хороший выбор. Если человек, ответственный за prelovac.com, действительно хотел установить имя, он использовал бы заголовок содержимого. В то время как браузеру разрешено все еще игнорировать это, если вы хотите сопоставить то, что большинство пользователей будут видеть файлы, сохраненные как, тогда изучите это и проверьте только путь к информации URI, если он отсутствует. –

ответ

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

thanks 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

Есть PHP-функции, которые могут сделать это за один раз. – 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

рассмотрим следующий путь изображения $ IMAGE_URL = 'http://development/rwc/wp-content/themes/Irvine/images/attorney1.png'; из этого url для получения имени изображения с расширением используйте следующую функцию basename(); выглядеть следующий код

код:

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

выход: attorney1.png

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

echo $img['0']; 
1

Когда-нибудь URL имеет дополнительные параметры, приложенные к нему. В таком сценарии мы можем сначала удалить раздел параметров, а затем использовать функцию встроенного pathinfo() PHP для получения имени изображения из URL-адреса.

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

Проверьте, прилагается ли параметр изображения.

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

В результате переменная URL теперь содержат

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

Используйте pathinfo(), чтобы получить нужные данные.

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

Это даст shutterstock_65560759.jpg как выход.

+0

Попробуйте добавить некоторое объяснение, чтобы улучшить качество вашего ответа. – Minzkraut