2015-04-06 2 views
1

Если у меня есть URL-адрес что-то вроде этого:Можно ли получить базовое имя изображения с помощью PHP локон

$url = graph.facebook.com/user-id/picture?type=large 

и я получаю расширение с помощью CURL.

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_NOBODY, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $rawdata = trim(curl_exec($ch)); 
    $results = split("\n", $rawdata); 

     var_dump($rawdata); 
    foreach($results as $line) { 
      if (strtok($line, ':') == 'Content-Type') { 
        $parts = explode(":", $line); 
        $extension = trim($parts[1]); 
      } 
    } 

Но я не могу получить базовое имя изображения, может ли кто-нибудь мне помочь?

ответ

2

Если вы ищете только имя-изображения из результата, почему бы не искать Location вместо exploding все.

Что-то вроде этого:

foreach($results as $line) { 
    if(substr($line, 0, 10) == "Location: ") { 
     $img_url= substr($line, 10); 
     echo basename($img_url,".jpg"); 
    } 
} 
+0

Nice я просто смотрел на шнуре и мысль о exploading из местоположения, но я хочу получить и тип MIME, и basename – Vikram

+0

. Вы можете использовать аналогичный подход для поиска 'Content-Type:' из массива. Найдите 'Content-Type:' и затем 'Location:', а затем 'break'. – Vishwa

+0

сначала мне нужно будет найти тип. Тогда мне придется использовать переменную для расширения, которую я передам в basename ($ img_url, $ extention), что-то вроде этого правильно? – Vikram

0

Используя ответ предоставляется VISHWA и моя идея, я построил это до

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_NOBODY, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $rawdata = trim(curl_exec($ch)); 
    $results = split("\n", $rawdata); 

     //var_dump($rawdata); 
     echo "<br>"; 
     $extension = ''; 
    foreach($results as $line) { 
      if (strtok($line, ':') == 'Content-Type') { 
        $parts = explode(":", $line); 
        $extension = trim($parts[1]); 
      } 

      if($extension!='') 
      { 
         switch($extension){ 
         case "image/gif": $extension='.gif'; 
             $save=true; 
             break; 
         case "image/jpeg": $extension='.jpg'; 
             $save=true; 
             break; 
         case "image/png": $extension='.png'; 
             $save=true; 
             break; 
         default: $save=false; 
         } 

         if(substr($line, 0, 10) == "Location: ") { 
         $img_url= substr($line, 10); 
         $base_name = explode($extension,basename($img_url,$extension)); 
         echo $base_name = trim($base_name[0]); 
      } 

      } 
    } 

Благодаря

Смежные вопросы