此问题已在此处有答案:
Why would one omit the close tag?(14个回答)
4天前关闭。
我有一个简单的php脚本,看起来像这样,运行在RHEL 8服务器上,PHP 7.2.24:
<?php
// Establish Connection
include_once("db_connect.php");
// Perform any query
$sql = "SELECT now()";
// The following (mysqli_query call) should do nothing, yet echoes two line feeds
$result = mysqli_query($conn,$sql);
echo "TEST";
?>
如果我检索这个脚本输出(例如,用WGET)* 直接放入一个文件 *,我的文件内容(十六进制转储)是:0a0a 5445 5354
我没有回显“TEST”之前的这两行提要,并且它们只在执行mysqli_query时被插入。(如果我注解掉那一行,我的文件看起来像5445 5354
一样)
更奇怪的是,如果我从同一个客户端在不同的/远程服务器(CentOS 8和PHP 7.2.24)上这样做,它会像预期的那样工作- mysqli_query不会添加这些行提要。
我错过了什么?是否有某种控制这种行为,这显然是不同的设置在我的两个系统?谢谢你,谢谢!
1条答案
按热度按时间pqwbnv8z1#
我怀疑额外的行结尾实际上来自
db_connect.php
。请确保在该文件中的结束标记?>
之后没有任何行尾,或者更好的是,完全删除结束标记。?>
结束标记之后的任何内容(包括换行符!)将被视为输出,并可能通过include
泄漏到其他文件中。