0

我目前正在为使用 wowarmoryapi 的朋友设计一个魔兽世界公会网站。但是我目前正在制作成员列表,并且并非所有成员(较低级别等)都有图像。所以我想我会过滤掉那些返回虚假图像并在他们的位置显示“blankportrait.png”的人。

这是我正在使用的代码,(它在本地站点上,所以恐怕没有链接)

            $portrait = $member['character']['thumbnailURL'];
        $noportrait = "wp-content/themes/the-confederation/inc/images/blankportrait.png";
            if (file_exists($portrait)) {
                $portrait;
            } else {
                $portrait = $noportrait;
            };
        ?>
            <div class="member">
            <div class="memberportrait"><img src="<?php echo $portrait ?>"/></div>
4

2 回答 2

0

file_exists只能在本地或网络驱动器上使用。在您的情况下,您想查看字符串是否存在(或非空)。您可以执行以下操作:

$portrait = $member['character']['thumbnailURL'];
$noportrait = "wp-content/themes/the-confederation/inc/images/blankportrait.png";
if (empty($portrait)) {
  $portrait = $noportrait;
}

此外,如果您在 wordpress 中,您可能希望设置$noportrait为包含get_stylesheet_directory_uri().. 例如:

$noportrait = get_stylesheet_directory_uri()."/inc/images/blankportrait.png";
于 2013-07-03T17:01:04.293 回答
0

OP的解决方案。

使用 Curl 的解决方案:

$noportrait = get_stylesheet_directory_uri()."/inc/images/blankportrait.png";
$h = curl_init($member['character']['thumbnailURL']);
curl_setopt($h, CURLOPT_RETURNTRANSFER, true);
$r = curl_exec($h);
$http_code = curl_getinfo($h, CURLINFO_HTTP_CODE);
if($http_code == 404)
{
    $portrait = $noportrait;
}
else
{
    $portrait = $member['character']['thumbnailURL'];
}
curl_close($h);
于 2018-04-30T15:00:56.510 回答