4

私は Bing Search API を使用して、ユーザーが Web サイトのインライン投稿に bing 画像を関連付けられるようにしようとしています。そこから画像を選択すると、使用するためにサーバーに保存されます。返される MediaUrl' は必ずしも画像ではありません。

例 1) キーワードを検索するNascar
と 2 つの画像が返さ
<img src=''>ます。
2) http://images4.fanpop.com/image/photos/23900000/NASCAR-nascar-23962589-425-425.jpg ..その URL は実際には www.fanpop.com/clubs/nascar/images/23962589/ に読み込まれますtitle/nascar-photo?ir=true..

例 2) 検索キーワードJason Aldean
2 つの画像を返します。
1) www.greenobles.com/data_images/jason-aldean/jason-aldean-01.jpg <- で動作する実際の画像の URL <img src=''>
2) http://www.cmtradiolive.com/wp-content/uploads/2009/10/jason-aldean.jpg実際に Web ページをロードする面白い URL。

<?php
// Search Bing Api 
$articles = sitesearch('Jason Aldean', $_SERVER['HTTP_HOST'], $accountKey, 4);
$i        = 0;
// Process Results starting with reszing image within aspect ration to display to user
foreach ($articles['d']['results'] as $article) {
    $i++;

    $dimensions    = array(
        $article['Width'],
        $article['Height']
    );
    $dimensionsNew = array(
        125,
        125
    );

    // What scale do we need to go to
    $scaleRequired = min($dimensionsNew[0] / $dimensions[0], $dimensionsNew[1] / $dimensions[1]);

    if ($scaleRequired < 1) {
        $twidth  = $dimensions[0] * $scaleRequired;
        $theight = $dimensions[1] * $scaleRequired;

        // Resize to $finalDimensions

    } else {
        $twidth  = $article['Width'];
        $theight = $article['Height'];
    }
    // Display images resized within ration to =< 125PX
    echo "<img alt='bimage' width='$twidth' height='$theight' src='" . $article['MediaUrl'] . "' style='magin:     10px !important; 
       border: thin solid #666666;' />&nbsp;&nbsp;";

}
?>

特定の URL が直接の画像 URL であるかどうかを確認する方法はありますか?!

4

2 に答える 2

1

特定の URL が直接の画像 URL であるかどうかを確認する方法はありますか?!

応答自体を分析することもできます。次のようになります。

/**
 *
 * @return boolean Whether image is "pure"
 */
function is_image_url($url, array $extensions){

    $response = get_headers($url, 1);

    foreach($response as $key => $value){

         foreach($extension as $ext){

              if (stripos($value, $ext) !== FALSE){
                  return TRUE;
              }
         }
   }

   return FALSE;
}

//Usage:

$extensions = array('jpg', 'gif', 'bmp');

if ( is_image_url('http://exampe.com/image.jpg', $extensions) === TRUE ){
   // It is. Do some stuff here
}
于 2013-03-21T17:19:20.327 に答える