2015-04-06 66 views
1

獲取圖像的基本名稱如果我有網址是這樣的:是否有可能使用curl 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

尼斯我只是在看串和思想exploading的從位置,但我想同時獲得MIME類型和基地名稱 – Vikram

+0

您可以使用類似的方法從數組中找到「Content-Type:」。 查找'Content-Type:'然後'Location:'然後'break'。 – Vishwa

+0

首先,我將不得不找到該類型。然後,我將不得不使用一個變量來擴展變量,我將通過基本名稱($ 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]); 
      } 

      } 
    } 

感謝