我想要它,以便如果阵列中有玩家,它将返回图片。这到目前为止工作。什么行不通的是当数组中没有玩家时,它将返回一张空白图片,不会回显"No Players Online"
。
$query = (Minequery::query("67.202.102.224"));
$plist = $query['playerList'];
foreach($plist as $k => $v)
// print_r(Minequery::query_json("67.202.102.224"));
if (defined($plist)){
echo'<img src="http://minotar.net/avatar/'.$v.'" title="'.$v.'" height="50" width="50"> ';
} else {
echo 'No Players Online';
}
答案 0 :(得分:4)
你有一辆车放在马前:
$query = (Minequery::query("67.202.102.224"));
$plist = $query['playerList'];
foreach($plist as $k => $v)
//print_r(Minequery::query_json("67.202.102.224"));
if (defined($plist)){
echo'<img src="http://minotar.net/avatar/'.$v.'" title="'.$v.'" height="50" width="50"> ';
}
else {
echo 'No Players Online';
}
在您开始尝试迭代它之后,您正在检查数组是否包含内容。试试这个:
$query = (Minequery::query("67.202.102.224"));
$plist = $query['playerList'];
if (!empty($plist)) {
foreach($plist as $k => $v) {
echo '<img src="http://minotar.net/avatar/'.$v.'" title="'.$v.'" height="50" width="50"> ';
}
}
else {
echo 'No Players Online';
}
答案 1 :(得分:0)
空数组(例如array()
)等于false
,这意味着使用简单的if子句可以处理:
if ($plist) {
echo '<img src="http://minotar.net/avatar/'.$v.'" title="'.$v.'" height="50" width="50"> ';
} else {
echo 'No Players Online ';
}
但是,在循环之前需要先检查一下:
if (!$plist) {
echo 'No Players Online';
} else {
foreach($plist as $k => $v) {
echo '<img src="http://minotar.net/avatar/'.$v.'" title="'.$v.'" height="50" width="50">';
}
}
注意:您需要最新版本的minequery-php才能正常运行。有一个错误已得到修复。现在
如果你在HTML中使用$v
,那么也要注意{{1}}应该正确编码 - 而不是它包含HTML,然后你的HTML就会被打破。请参阅htmlspecialchars
。
与您使用的URL类似,如果您没有对其进行正确的URL编码,则URL可能会被破坏。请参阅urlencode
。