Notepad++有PHP语法检查器吗?

36

有没有适用于Notepad++的PHP语法检查插件?

请不要回答“改用其他编辑器”


你是指语法高亮吗? - Oded
有的,你把文件保存成了html还是php格式? - Ibu
3
@Oded,我不是指语法高亮。我的意思是显示语法错误列表(如果有的话)。类似于https://sourceforge.net/projects/jslintnpp/...但应该显示PHP错误,而不是JS。 - edt
6个回答

14

尝试使用NppExec插件来扩展Notepad++。使用它,可以创建一个类似如下的命令:

cmd.exe /K c:\your\path\to\php.exe -l "YOUR_FULL_FILE_NAME"

你应该使用适当的Notepad++宏而不是YOUR_FULL_FILE_NAME -- 我认为它是$(FULL_CURRENT_PATH),但请参考NppExec手册(与插件一起安装)进行确认。

P.S. 但任何IDE肯定都会更好(我使用PhpStorm)。如果IDE太重了,那么可以寻找面向PHP的编辑器,例如Blumentals RapidPHP等(比完整IDE更轻量化但可能具有所有真正重要的功能)。


7
你可以在运行菜单中完成此操作,无需安装NPPExec。 - Mr_Chimp
1
就像Mr_Chimp所说的那样,您可以使用Notepad++的运行命令。在从php.net下载Windows PHP二进制文件并将它们复制到e:\depot-tools后,这是我使用的确切语法: cmd.exe /K "E:\depot_tools\php-5.4.45\php.exe -l $(FULL_CURRENT_PATH)" - Dave S
1
cmd.exe /K C:\xampp\php\php.exe -l "$(FULL_CURRENT_PATH)" && exit - jmp

8

如LazyOne所说,您可以使用NppExec,您可以使用插件管理器安装它(Plugins>Plugin Manager>Show Plugin Manager),您还需要安装PHP。最后,我使用的在NppExec中进行PHP语法检查的命令是:

"C:\Program Files (x86)\PHP\php.exe" -l $(FULL_CURRENT_PATH)

6
我建议你找一个真正的集成开发环境 (不是一个浮夸的文本编辑器)。我多年来一直使用Notepad++,但它除了语法高亮之外不能做太多事情。
我个人使用PHPStorm(但它不是免费的,非常好用 :D)。你也可以使用NetBeans或Eclipse。

我也使用NetBeans和Eclipse。但是,我的电脑太慢了。因此,Notepad ++是赢家。真正的解决方案是购买一台更好的电脑。 - edt
PHPStorm非常快。比Eclipse或NetBeans快得多,这就是我使用它的原因。当然,在打开项目时会有一些损失,但如果你学会了热键,它就非常快。我完全喜欢ctrl+shift+n和ctrl+shift+f实际上也超级快。 - Halcyon
1
非商业IDE怎么样? - Cyclone
1
一个好的非商业IDE?这不是矛盾修辞吗?;) - Halcyon
3
我尝试了php storm、net beans和zend studio...但我最喜欢的还是notepad++。因为它速度快,轻便。希望能找到一个好的、轻量级的ide... - h0mayun

3

补充@LazyOne的回答: 我不喜欢NetBeans,它太严格了,在查找包含文件时很棘手,速度也慢。我喜欢N++,因为它快速简单。我在我的电脑上安装了php,只是为了运行验证。如果您使用N++(或任何其他文本编辑器),可以使用以下Powershell脚本批量检查下载和正在处理的所有文件。只需启动Powershell ISE,输入正确的检查路径和PHP.exe路径以适应您的环境,结果就会输出到ISE控制台。

cls
$pathToCheck = "C:\Users\BigDaddy\AppData\Local\Temp\fz3temp-1"
$phpExePath = "C:\PHP\php.exe"

Get-ChildItem $pathToCheck -Filter "*.php" | foreach {
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = $phpExePath
$pinfo.Arguments = "-l", $_.FullName
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$output = $p.StandardOutput.ReadToEnd()
$output += $p.StandardError.ReadToEnd()
$output
}

我希望其他人也能像我一样受益于这篇文章。
祝好!

2

我使用免费版本的Komodo Edit 7,它具有内置的php语法检查器。我不知道它有多强大,但对我来说工作得很好。虽然我不是专业的网页设计师,但我仍喜欢它胜过Eclipse和Bluefish。在我的Win XP环境中,Komodo比Eclipse更小且比Bluefish更稳定。


Notepad++是高级用户最好和最快的编辑器。你也可以尝试PHP Designer,它也不错。我不喜欢其他编辑器。 - Ravikant Upadhyay

1

PHP 可以使用 -l 选项对您的文件进行语法检查。如果您尚未安装 PHP,请在计算机上安装它,并在 Notepad++ 中使用 运行 功能,运行以下命令:

cmd.exe /S /K ""C:\Program (portable)\php-8.0.12-Win32-vs16-x64\php.exe" -l "$(FULL_CURRENT_PATH)""

更改安装位置的路径。通过运行后,您可以保存它,给它命名并分配自定义键盘快捷方式。

命令的详细说明:

  • cmd.exe /S /K 打开一个新的命令 shell,在执行后保持打开状态,/S 可以将整个要在 cmd.exe 中执行的命令包装在引号中
  • "C:\Program (portable)\php-8.0.12-Win32-vs16-x64\php.exe" 启动 php.exe
  • -l php.exe 的选项,用于使用其语法检查服务而不是执行
  • "$(FULL_CURRENT_PATH)" Notepad++ 特定的,它提供了当前打开文档的完整路径

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接