我正在动态地从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);?>" />
答案 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
}