如果找不到则不显示照片

时间:2013-10-19 23:11:18

标签: php jquery html ajax image

我正在开发一个浏览器扩展程序(内容脚本),用于扫描和突出显示页面上的某些单词,并使用AJAX和PHP将内容回显到用户将鼠标悬停在所述单词上时显示的工具提示中。从PHP文件回显的一件事是图像,但我的问题是我没有每个关键字的图像 - 我想要的是PHP只回显一个图像,当一个图像存在于给定的URL时。截至目前,某些单词显示图像,其他单词显示“未找到图像”图标。如果图像不存在,我想要的是“图像未找到”图标。

我让AJAX将变量($ data)发送到我网站上托管的PHP文件。也许让它在回显之前检查url的HTTP头?

这是我的代码:

  

$ data = $ _POST ['id'];

     

echo“http://extension.nicholasrub.in/headshots/”。 $ data。 ” .PNG'>“中;

4 个答案:

答案 0 :(得分:1)

你为什么不这样检查呢?

$data = $_POST['id'];
if($data !== "") {
    echo "http://extension.nicholasrub.in/headshots/" . $data . ".png'>";
}

else {
    echo "http://extension.nicholasrub.in/headshots/notFound.png'>";
}

编辑:

使用file_exists()

$data = $_POST['id'];
$imagePath = "/path/images/" . $data . ".png";

if (file_exists($imagePath)) {
    echo "http://extension.nicholasrub.in/headshots/" . $data . ".png'>";
}

else {
    echo "http://extension.nicholasrub.in/headshots/notFound.png'>";
}

答案 1 :(得分:0)

您可以使用此功能检查文件是否存在 http://php.net/manual/en/function.file-exists.php

答案 2 :(得分:0)

如果要检查服务器上不存在的图像,请使用以下代码:

$data = $_POST['id'];
$imagePath = "http://extension.nicholasrub.in/headshots/$data.png";
echo "http://extension.nicholasrub.in/headshots/".(file_get_contents(imagePath) ? $data : 'notFound').".png'>"

答案 3 :(得分:0)

我最终通过检查HTTP标头是否为404来解决问题。

我的代码:

$file = "http://extension.nicholasrub.in/headshots/" . $data . ".png";

$file_headers = @get_headers($file);

if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
    $exists = false;
}
else {
    $exists = true;
}

if ($exists == true) {
    echo "<div id='my-tooltip-2986234'><div><img src='http://extension.nicholasrub.in/headshots/" . $data . ".png'>";
}
else {
    echo "<div id='my-tooltip-2986234'><div>";
}