PHP代码在->语句后停止执行并暴露至浏览器的问题求助
PHP代码执行到
->后停止,后续代码直接显示在浏览器(Apache+PHP8.1.10) 问题描述
时隔多年重新接触PHP,遇到一个棘手问题:所有PHP脚本执行到->语句后便停止运行,后续代码直接在浏览器中显示。使用Apache服务器搭配PHP 8.1.10版本,已尝试多个在线示例、更换浏览器、重装XAMPP,但问题始终存在。
示例代码:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // 后续代码直接显示在浏览器中 .... ?>
代码仅解析到if ($conn->处,->之后的代码直接作为文本显示。
解决方案
以下是几个可能的原因及对应解决步骤:
检查文件编码:确保PHP文件使用UTF-8无BOM编码。若文件保存为UTF-16或带BOM的UTF-8,PHP解析器可能无法正确识别代码结构,导致中途停止解析。用编辑器(如VS Code、Notepad++)打开文件,重新保存为UTF-8无BOM格式。
验证Apache的PHP配置:打开XAMPP的Apache配置文件(
httpd.conf),确认以下配置正确(路径需匹配你的PHP安装目录):LoadModule php_module "modules/php8apache2_4.dll" AddHandler application/x-httpd-php .php PHPIniDir "D:/xampp/php" # 示例路径,替换为你的实际路径修改后重启Apache再测试。
启用必要的PHP扩展:打开
php.ini文件,确认mysqli扩展已启用(移除行首的分号):extension=mysqli重启Apache使配置生效。虽然扩展未启用不会直接导致解析中断,但会引发运行时错误,可能间接导致解析异常。
查看错误日志定位问题:通过XAMPP控制面板打开Apache的错误日志(点击Apache模块的
Logs按钮),或查看PHP的错误日志,日志中会记录解析失败的具体原因,帮助快速定位问题。极简代码测试:创建一个极简测试文件,排除原文件内容的干扰:
<?php $obj = new stdClass(); $obj->test = "Hello"; echo $obj->test; ?>若该文件仍出现相同问题,说明是环境配置问题;若正常运行,则原文件存在特殊字符或编码异常。
内容的提问来源于stack exchange,提问作者user20503622
相关产品推荐
相关产品推荐

