PHP:网址

时间:2017-11-03 05:06:31

标签: php

我正在动态地从URL获取图像源,但有时URL返回空或图像不存在所以我创建了一个PHP函数来检查图像源是否存在所以我可以显示当图像无法访问时,我的用户可以使用默认图像。

我担心的是,我的功能是否足以捕获数据?

我当前的php函数在确定图像确实存在时有效。

function get_image_by_id($ID) {

  $url = 'http://proweb/process/img/'.$ID.'.jpg'; 

  if(empty($url)){

   return 'default.jpg';

   }else{

    return $url;

  }

}

我的index.php

<img src="<?php echo get_image_by_id($ID);?>" />

4 个答案:

答案 0 :(得分:1)

您可以使用php is_file()来确定。

if (is_file($url) {
//its a file 
   }

您可以使用三元运算符(一个班轮)

    return is_file($url) ? $url : 'default.jpg';

答案 1 :(得分:1)

此处CURL也可以提供帮助,经过测试并且运行正常。这里我们使用curl来获取URL的HTTP响应代码。如果状态代码为200,则表示存在。

function get_image_by_id($ID)
{
    $url = 'http://proweb/process/img/' . $ID . '.jpg';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $info = curl_getinfo($ch);
    if ($info["http_code"] != 200)
    {
        return 'default.jpg';
    }
    else
    {
        return $url;
    }
}

答案 2 :(得分:0)

你可以像这样使用

<?PHP 
function get_image_by_id($ID) {

  $url = 'http://proweb/process/img/'.$ID.'.jpg';
// Checks to see if the reomte server is running 
       if(file_get_contents(url) !== NULL) 
        { 
            return  $url; 
        } 
       else
        { 
             return 'default.jpg';
        } 
}
?>

答案 3 :(得分:-1)

function get_image_by_id($ID) {
 if(empty($url)){
$url = 'http://proweb/process/img/default.jpg; 
}else{
$url = 'http://proweb/process/'.$ID.'.jpg'; 
 }
return $url
}