You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:15:28