php代码不执行是因为未通过web服务器访问,而是直接双击打开导致浏览器以file://协议读取源码;必须配置dw的服务器模型并用http://localhost访问,同时确认apache/php服务已启动且phpinfo()可正常显示。

DW(Dreamweaver)里写的 PHP 代码不执行,不是 DW 的问题,而是它根本没走 PHP 解析器——DW 只是编辑器,不是服务器。
为什么浏览器打开 .php 文件只显示源码或空白
这是最典型的“PHP 不执行”现象。根本原因是:你双击打开了 index.php,浏览器用 file:// 协议加载,PHP 代码根本没被 PHP 解释器处理过。
- 本地直接双击打开
.php文件 → 浏览器当纯文本读,原样显示或报错 - 正确方式必须通过 Web 服务器访问,比如
http://localhost/index.php - DW 的“在浏览器中预览”默认也是走
file://,除非你手动配置了“启用了服务器模型”的测试服务器
检查本地是否真有 PHP 环境在运行
很多人以为装了 XAMPP / WAMP 就万事大吉,其实服务可能根本没启动,或者端口被占。
- 打开任务管理器,确认
httpd.exe(Apache)和php-cgi.exe或php.exe进程是否存在 - 访问
http://localhost,看是否出现 XAMPP/WAMP 首页;如果打不开,先查 Apache 是否启动成功 - 运行
php -v(命令行中)确认 PHP 命令行环境可用;但注意:CLI 版本 ≠ Web 版本,Apache 加载的php.ini可能是另一个路径 - 新建一个
info.php,内容为<?php phpinfo(); ?>,放进htdocs目录,再用http://localhost/info.php访问 —— 这才是检验 Web 环境是否就绪的唯一标准
DW 中“实时视图”和“在浏览器中预览”为啥还是不解析 PHP
DW 的实时视图本质是本地 HTML 渲染引擎(类似简化版浏览器),它不调用 PHP 解析器,所以任何 <?php ?> 都会被忽略或直接显示出来。
立即学习“PHP免费学习笔记(深入)”;
- “在浏览器中预览”默认行为 = 用系统默认浏览器打开当前文件的本地路径(
file:///...),和 PHP 无关 - 要让它走服务器,必须设置“站点定义”→“服务器”→启用“启用服务器模型”,并填对“连接方法”(本地/网络)、“Web URL”(如
http://localhost/myproject/)和“服务器文件夹”(如C:\xampp\htdocs\myproject\) - 设置完后,“在浏览器中预览”才真正发出
http://请求,PHP 才有机会执行
常见伪错误:PHP 语法没错,但页面没输出
代码没报错、服务器也跑了,但页面就是空,容易误判为“PHP 没执行”,其实是逻辑或输出控制问题。
- 检查是否有
error_reporting(0)或display_errors = Off导致错误被静默吞掉;临时在php.ini改成On,或在脚本开头加ini_set('display_errors', '1'); error_reporting(E_ALL); - 确认没有意外调用
ob_start()后忘记ob_end_flush(),导致输出被缓冲住 - 查看浏览器开发者工具的 Network 标签,看响应体(Response)里有没有 PHP 输出内容,还是压根返回了 500/404
- 留意文件编码:用 UTF-8 无 BOM 保存
.php文件,BOM 会导致 header() 失败、输出异常
真正卡住人的,往往不是不会写 PHP,而是混淆了“编辑”“保存”“发送请求”“服务器响应”这四个环节——DW 只管前两个,后面两个得靠你自己搭好通路。少一次 http://,就少一次解析机会。











