我正在尝试使用Bing Search API来允许用户将bing图像与网站上的帖子联系起来,一旦他们从那里选择了一个图像,就会将其保存到服务器中以供使用..但有时使用Bing搜索结果'MediaUrl'返回的图像不是nessecarily。
示例1)搜索关键字Nascar
返回两张图片:
1)www.betbigdc.com/wp-content/uploads/2010/02/nascar1.jpg&lt; - 实际上是图像,我可以使用,在<img src=''>
中工作。
2)http://images4.fanpop.com/image/photos/23900000/NASCAR-nascar-23962589-425-425.jpg ..该网址实际加载到www.fanpop.com/clubs/nascar/images/23962589/title/nascar-photo?ir=true ..
示例2)搜索关键字Jason Aldean
返回两张图片:
1)www.greenobles.com/data_images/jason-aldean/jason-aldean-01.jpg&lt; - 在<img src=''>
中有效的实际图片网址。
2)实际加载网页的http://www.cmtradiolive.com/wp-content/uploads/2009/10/jason-aldean.jpg搞笑网址。
<?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;' /> ";
}
?>
答案 0 :(得分:1)
有没有办法验证给定网址是否是直接图片 网址是什么?!
您也可以分析响应本身。它看起来像这样:
/**
*
* @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
}
答案 1 :(得分:0)
您可以使用curl
来确定这一点。
初始化时,请在CURLOPT_FOLLOWLOCATION
中将false
设置为curl_setopt
,以使curl
不遵循重定向。
CURLOPT_HEADER
至true
以包含返回标头信息。
判断是否设置了Location
标头。
对于http://www.cmtradiolive.com/wp-content/uploads/2009/10/jason-aldean.jpg等直接引导您转到其他内容但没有跳转的网址,您可以在返回标题中按Content-type
判断该内容是否为图片。
有关curl
的详细信息:http://www.php.net/manual/en/book.curl.php