可能这是我另一个愚蠢的问题,但是...
我有一个非常简单的PHP文件,该文件从MySQL DB返回表的“ datetime”字段中的第一个日期:
<?php
$query = "SELECT MIN(Date) FROM Table";
$result = mysqli_query($db,$query); //$db defined elsewhere
if ($result) {
$row = mysqli_fetch_row($result);
echo $row[0];
}
?>
一切都很好,返回了日期,但是开头有一个额外的'\r\n'
;即:'\r\n2019-01-21'
。
我不知道这是从哪里来的,它在程序的其余部分中会产生错误。
请注意,我目前还有其他几个PHP文件,这些文件均未显示此问题。
此刻,我暂时用'firstdate.slice(2)'
进行了修复。
怎么了?
编辑
我检查了MySql / PHP方面,没有任何多余的字符(感谢Alister的var_dump建议)。我还删除了结尾的?>标记,结果相同。
看来问题出在以下Ajax调用上:
$.ajax({
url: "php/caricaPrimaData.php", //the above snippet
type: "GET",
async: false, //I know, should be True, but it is ok for me
success: function(response){ //response = '/r/n2015-11-15'
gFirstDate = response.trim();
}
});
此处“ response”变量(已通过Mozilla调试器检查)显示了换行符,然后将其通过trim删除。
解决方案是可以接受的,但好奇心仍然存在。
答案 0 :(得分:2)
如果屏幕输出包含多余的换行符,而不是变量(用int
检查),则如果在运行该代码之前包含其他文件,并且其他文件也包含close-PHP result
标签,您可能会在标签后的文件中某处隐藏空白行。
这就是为什么最佳做法是在不需要它们时不再使用任何关闭php标记-这只会在HTML文件的中间,其中包含一些PHP。
没有结束标记,就不能在它后面加上任何东西,甚至是偶然的。