不能。Windows cmd 默认不识别.php后缀,需通过PHP解释器显式调用,正确命令为php path\to\your\script.php(PATH已配置时)。

PHP 文件能不能直接用 cmd 双击或输入文件名打开?
不能。Windows 的 cmd 默认不识别 .php 后缀为可执行文件,双击或直接输入 xxx.php 会报错:'xxx.php' is not recognized as an internal or external command。PHP 文件不是 Windows 原生可执行格式,必须通过 PHP 解释器显式调用。
在 cmd 运行 PHP 文件的正确命令是什么?
前提是已安装 PHP 且已加入系统环境变量 PATH(可通过 php -v 验证)。运行命令格式统一为:
php path\to\your\script.php
常见情况和注意事项:
- 如果 PHP 未加到 PATH,需用绝对路径调用解释器,例如:
C:\php\php.exe script.php - 脚本路径含空格时,必须用英文双引号包裹,例如:
php "C:\my project\test.php" - PHP CLI 模式默认不加载
php.ini中的某些扩展(如curl、mbstring),可用php -c "C:\php\php.ini" script.php显式指定配置文件 - 若脚本依赖 Web 环境(如
$_SERVER['REQUEST_URI']),CLI 下这些变量为空或不一致,需改用$argv获取命令行参数
为什么 php -S localhost:8000 不能“打开”单个 PHP 文件?
php -S 启动的是一个微型 HTTP 服务器,并非直接执行脚本。它需要一个路由文件(router script)来决定如何响应请求,不是“运行某 PHP 文件”的等价操作。
立即学习“PHP免费学习笔记(深入)”;
比如你执行:
php -S localhost:8000 -t ./public/
这时访问 http://localhost:8000/index.php 才会由 PHP 内置服务器解析并运行该文件——本质是 HTTP 请求触发,不是命令行直调。想快速验证单个脚本逻辑,别绕路起服务,直接用 php script.php。
常见失败原因和对应检查项
运行失败时,先逐项确认以下几点:
- 是否真的安装了 PHP?运行
php -v—— 若提示“不是内部命令”,说明 PATH 未配置或安装不完整 - PHP 安装目录下是否存在
php.exe?没有则可能是只下载了源码包或 ZIP 包未解压到位 - 脚本开头是否有 BOM(UTF-8 with BOM 编码)?会导致 CLI 下报
Parse error: syntax error, unexpected '?' in ...类似错误,用 VS Code 或 Notepad++ 改为 UTF-8 无 BOM 保存 - 脚本中用了
exit()或die()提前终止?CLI 下输出可能一闪而过,建议加echo "done";或重定向输出:php test.php > log.txt
最常被忽略的是编码问题和 PATH 配置——这两点卡住的人最多,远超语法错误本身。











