0

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

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

这是我的代码:

$data = $_POST['id'];

回声“http://extension.nicholasrub.in/headshots/”。$数据。".png'>";

4

4 回答 4

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'>";
}
于 2013-10-19T23:14:31.647 回答
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>";
}
于 2013-10-19T23:52:59.053 回答
0

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

于 2013-10-19T23:22:59.127 回答
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'>"
于 2013-10-19T23:32:26.030 回答