根本原因是Windows找不到php.exe,90%配置失败源于PATH未正确设置;需将PHP安装路径(如C:\php)加入系统PATH、重启Notepad++、命令必须写为php "$(FULL_CURRENT_PATH)"并加双引号。

php "$(FULL_CURRENT_PATH)" 运行命令为什么总报错
根本原因不是 Notepad++ 有问题,而是 Windows 找不到 php.exe。90% 的失败都卡在这一步。
先打开 CMD,直接输 php -v:能输出版本号(比如 PHP 8.5.5 (cli)),说明 PHP 已就绪;如果报 'php' is not recognized as an internal or external command,就别往下配了。
- 没装 PHP?去
windows.php.net/download/下非线程安全版(NTS + x64/x86 要和你的系统一致),解压后记下完整路径,例如C:\php - PATH 没加对:必须加到「系统变量」的
PATH,不是用户变量;新增一行,只填路径(如C:\php),不要带php.exe - 改完 PATH 后,必须彻底退出 Notepad++(右键任务栏图标 → 退出),再重新打开,否则新环境变量不生效
运行命令里 $(FULL_CURRENT_PATH) 和双引号怎么用
Notepad++ 的运行命令是模板式替换,不是固定路径。手敲路径、漏引号、或误用变量,遇到空格、中文、特殊字符必崩。
- 正确写法只有这一种:
php "$(FULL_CURRENT_PATH)"——$(FULL_CURRENT_PATH)展开为类似C:\my project\test.php的绝对路径,双引号防截断 - 别用
$(CURRENT_DIRECTORY):它只给到文件夹(如C:\my project\),没有文件名,php根本没法执行 - 想看错误不闪退?加
&& pause:php "$(FULL_CURRENT_PATH)" && pause - 更稳的调试方式(尤其有 Warning/Notice 时):
php "$(FULL_CURRENT_PATH)" > "$(CURRENT_DIRECTORY)\output.log" 2>&1 && notepad "$(CURRENT_DIRECTORY)\output.log"
NppExec 插件比 F5 运行更可控,但要注意编码和路径
NppExec 支持内嵌输出、避免黑窗口,但默认控制台编码是 OEM(GBK),中文会乱码;且路径变量逻辑和 F5 略有不同。
立即学习“PHP免费学习笔记(深入)”;
- 安装 NppExec 后,在 Execute 框中输入:
cmd /c "php "$(FULL_CURRENT_PATH)""(外层cmd /c是为了兼容性) - 如果中文输出乱码:NppExec → Advanced Options → 勾选「Follow "Current encoding"」,确保当前文档编码(UTF-8 with BOM 或 UTF-8)与控制台一致
- 若仍不行,临时改用完整路径调用:
"C:\php\php.exe" "$(FULL_CURRENT_PATH)"(注意双引号包裹路径,尤其含空格时) - 别在 NppExec 中直接写
cd+php xxx两行命令:NppExec 默认不继承上一条命令的目录上下文,cd无效
PHP CLI 和 Web 环境差异大,别拿 phpinfo() 当运行成功标准
phpinfo() 在 CLI 模式下输出的是命令行环境信息,和 Apache/Nginx 下看到的完全不同——扩展启用状态、ini 文件路径、$_SERVER 变量全都不一样。
- CLI 默认禁用很多 Web 扩展(如
mysqli、pdo_mysql),即使它们在php.ini里开了,也可能因路径或依赖未加载而报Call to undefined function - 检查 CLI 实际加载的配置:
php -i | findstr "Loaded Configuration File",确认你改的php.ini真的被 CLI 读取了 -
$_GET、$_POST、$_COOKIE在 CLI 下为空数组,依赖这些变量的脚本会出逻辑错误,不是语法错 - 本地调试建议分两步:先用
php "$(FULL_CURRENT_PATH)"验证语法和基础逻辑;再扔进 XAMPP/WAMP/PHPEnv 启动的 Web 服务里验证真实请求行为
php.ini 很可能是两个文件,改了 Web 环境的配置,CLI 还在用默认的;而 Notepad++ 调用的永远是 CLI。



















