0

我有以下测试脚本:

<?php
    echo 'Hello'            // mistake - missing semicolon
    echo 'Hi';          
    echo $hi;               // mistake - undefined variable         
?>

我试图通过 NppExec 检查这个脚本 - 我使用了以下命令:

$(NPP_DIRECTORY)\notepad++.exe -n $(FULL_CURRENT_PATH)

我得到了一个意想不到的输出:

Process started >>>
<<< Process finished. (Exit code 0)
================ READY ================

我期待一些错误消息。这是否意味着我使用 NppExec 错误?谢谢

4

1 回答 1

1

问题

这个命令:

$(NPP_DIRECTORY)\notepad++.exe -n $(FULL_CURRENT_PATH)

我不知道你认为它在做什么,但这是它做什么:

这将打开记事本++。不是 PHP 或任何东西,只是 Notepad++。但是,由于 Notepad++ 实例已经在运行,它就退出了。
我不知道这是否在参数生效之前发生,但如果没有,那么$(FULL_CURRENT_PATH)将作为文件打开,并且 Notepad++ 将跳转到其中的第 0 行,因为该-n选项,这意味着“滚动到第 X 行” . 例如,由于您不给出,-n15而只是给出-n,因此行号为零。

解决方案

我认为您的目标是验证 PHP 文件的语法。
为此,您需要在系统上安装 PHP,并在您的系统中安装 PHP bin 文件夹%PATH%(或使用下面 php.exe 的完整路径)。
那么您正在寻找的 NppExec 命令应该是:

php.exe -l $(FULL_CURRENT_PATH)

-l(lowercase L) 选项传递给 PHP 可执行文件将使其验证输入文件的语法。

于 2015-04-20T11:35:45.730 回答