php echo在输出前加上/ r / n

时间:2019-01-27 20:48:22

标签: php mysql

可能这是我另一个愚蠢的问题,但是...
我有一个非常简单的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删除。
解决方案是可以接受的,但好奇心仍然存在。

1 个答案:

答案 0 :(得分:2)

如果屏幕输出包含多余的换行符,而不是变量(用int检查),则如果在运行该代码之前包含其他文件,并且其他文件也包含close-PHP result标签,您可能会在标签后的文件中某处隐藏空白行。

这就是为什么最佳做法是在不需要它们时不再使用任何关闭php标记-这只会在HTML文件的中间,其中包含一些PHP。

没有结束标记,就不能在它后面加上任何东西,甚至是偶然的。