PHP 文件生成 - 使用 MySQLi 时出现神秘换行符 (0x0a)

问题描述 投票:0回答:1

我有一个简单的 PHP 脚本,如下所示,在使用 PHP 7.2.24 的 RHEL 8 服务器上运行:

<?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 不会添加这些换行符。

我错过了什么?对于这种行为是否有某种控制,而我的两个系统之间的设置显然不同?谢谢!

php mysql mysqli
1个回答
0
投票
db_connect.php

。请确保该文件中的结束

?>
标记后没有任何行结尾,或者更好的是完全删除结束标记。

?>

结束标记(包括换行符!)之后的任何内容都将被视为输出,并且可以通过

include
泄漏到其他文件中。
    

© www.soinside.com 2019 - 2024. All rights reserved.