困惑...我有一个文件“api.php”如下所示。这是在jquery ajax调用中调用的。当我从命令行运行它时,我得到一个看起来正确的响应(即非空)。当我在ajax调用中运行它时,它似乎是空的。现在...当我评论出“if($ td< $ lessthan)”和两个括号时,它们都能正常工作(即ajax成功获得正确的数据。
这是我的“api.php”功能:
$basedir = "calls/";
$now = time();
$lessthan = 20 * 60;
$ret = array();
$dir = opendir( $basedir );
while(($currentFile = readdir($dir)) !== false)
{
if ( preg_match( '/(.*).txt/', $currentFile, $match) )
{
$tt = @file_get_contents($basedir.$currentFile);
$td = ($now - @strtotime( $tt ));
if( $td < $lessthan )
{
$ret[] = $match[1];
}
}
}
closedir($dir);
echo json_encode(implode(',', $ret));
?>
这是我的jquery ajax调用:
$.ajax({
url: 'api.php',
data: "",
dataType: "json",
type: "POST",
success: function(data, textStatus, jqXHR)
{
console.log(data + ':' + previous + ' ' + textStatus );
if( data != null && data != previous && data != "" )
{ previous = data;
$('#other').hide(); //Set output element html
$('#loaddiv').fadeOut('fast').load('reload.php?q='+data).fadeIn("fast"); //Set output element html
}
if( (data == null || data == "" ) && previous != null ) {
//$('#loaddiv').fadeOut('fast').html('No Active Calls').fadeIn("fast"); //Set output element html
$('#loaddiv').fadeOut('fast'); //Set output element html
$('#other').show();
$('#other').fadeOut('fast').load('default.php').fadeIn("fast");
previous = null;
}
},
error: function(m) { alert('error'); }
});
为什么评论api.php中的“if”语句会让整个过程发挥作用?或者更好的是,我如何将if语句留在其中并使其工作。