所以我试图检查从get_the_post_thumbnail_url()
这不符合我的预期。 以下是我正在使用的代码:
if (!file_exists($thePostThumbUrl))
$thePostThumbUrl = str_replace("_result.webp", "." . $ext, $thePostThumbUrl);
如果我回显拇指网址,则会以.webp格式获取正确的图像
echo $thePostThumbUrl . '<br/ >';
显示器:
图片网址+ _result.webp
我知道正在使用的PHP版本是PHP/5.6.30
答案 0 :(得分:1)
好的,正如Akintunde建议的那样,file_exists函数不能使用图像的url。因此需要修改代码以改为使用服务器路径。
这段代码可以解决问题:
$ext = pathinfo($thePostThumbUrl, PATHINFO_EXTENSION);
$thePostThumbPath = str_replace("http://localhost", "", $thePostThumbUrl);
if (!file_exists($_SERVER['DOCUMENT_ROOT'] . $thePostThumbPath)) {
$thePostThumbUrl = str_replace("_result.webp", "." . $ext, $thePostThumbUrl);
}
Thansk Akintunde指出我正确的方向:)
答案 1 :(得分:1)
我编写了一个函数,用于检查服务器上是否存在webp格式的给定图像:
function webpExists($img_src){
$env = array("YOUR_LOCAL_ENV", "YOUR_STAGING_ENV", "YOUR_PROD_ENV");
$img_src_webp = str_replace(array(".jpeg", ".png", ".jpg"), ".webp", $img_src);
$img_path = str_replace($env, "", $img_src_webp);
return file_exists($_SERVER['DOCUMENT_ROOT'] . $img_path);
}
答案 2 :(得分:0)
你需要在这种情况下使用CURL,因为它是一个URL。
示例:
function checkRemoteFile($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
// don't download content
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(curl_exec($ch)!==FALSE)
{
return true;
}
else
{
return false;
}
}