我试图检查以下内容是否为空。
{"players":""}
我有一个函数可以从api / site获取,并且......嗯,这是代码。
function getPlayers($server) {
// Fetches content from url and json_decodes it
$playersList = getUrl('http://api.iamphoenix.me/list/?server_ip=' . $server);
// Attempting to check if it's empty.
if ($playersList != "") {
// convert list of comma-separated names into array
$players = explode(',', $playersList->players);
foreach ($players as $player) {
echo '<img title="'.$player.'" src="https://minotar.net/avatar/'.$player.'/32">';
}
} else {
return 'empty';
}
}
但是,使用!=
,empty()
或isset()
,我仍会得到一个空字符串,例如:
https://minotar.net/avatar//32
它应该在哪里..
https://minotar.net/avatar/Notch/32
如果它是空的,我希望它能够返回“空白”。
我不确定我做错了什么。有什么想法吗?
答案 0 :(得分:1)
在纯php中,你可以查看网址段,如
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', $_SERVER['REQUEST_URI_PATH']);
if($segments[2] == '') {
}
//or
if(empty($segments[2])) {
}
//or do your condition
如果你使用的是codeigniter,你可能会说
if(empty($this->uri->segment(2)))
但请务必加载url helper
希望我理解你的问题!
答案 1 :(得分:0)
试试这个
if(isset($ playersList)&amp;&amp; is_array($ playersList)&amp;&amp;!empty($ playersList)){
// convert list of comma-separated names into array
$players = explode(',', $playersList->players);
foreach ($players as $player) {
echo '<img title="'.$player.'" src="https://minotar.net/avatar/'.$player.'/32">';
}
} else {
return 'empty';
}
答案 2 :(得分:0)
你应该这样做;
print_r($playersList);
在您设置它之后看它实际是什么。我的猜测是,你没有从getURL
电话中得到你怀疑的东西。
答案 3 :(得分:0)
再添加一个等号以将类型比较纳入帐户
if ($playerList !== '')
答案 4 :(得分:0)
由于您可以获得一些输出,请参阅我在代码中的更改。
function getPlayers($server) {
// Fetches content from url and json_decodes it
$playersList = getUrl('http://api.iamphoenix.me/list/?server_ip=' . $server);
// Attempting to check if it's empty.
if ($playersList != "") {
// convert list of comma-separated names into array
$players = explode(',', $playersList->players);
// check conversion
if(is_array($players) && !empty($players){
foreach ($players as $player) {
echo '<img title="'.$player.'" src="https://minotar.net/avatar/'.$player.'/32">';
}
} else {
return 'empty';
}
} else {
return 'empty';
}
}