2

配列にプレイヤーがいる場合は、写真とともに返されるようにしたいです。それはこれまでのところうまくいきます。うまくいかないのは、配列にプレイヤーがいない場合、空白の画像を返し、 echo しないこと"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';
    }   
4

2 に答える 2

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';
}
于 2012-08-04T09:40:05.823 に答える
0

空の配列 (例: array()) equals 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の最新バージョンが必要です。修正されたバグがありました。今。

$vHTML 内で使用する場合は、適切にエンコードする必要があることに注意してください。HTML が含まれていると、意図した HTML が壊れることはありません。を参照してくださいhtmlspecialchars

使用する URL についても同様ですが、適切に URL エンコードしないと、URL が壊れる可能性があります。を参照してくださいurlencode

于 2012-08-04T09:36:03.993 に答える