PHPStorm中PHP文件的语法高亮显示有误

156

我不知道发生了什么事情,但是一个PHP文件的语法高亮停止工作,并且文件旁边的图标也改变了。它显示为文本文件而不是PHP。

我该如何修复它?

11个回答

353

转到“设置|文件类型”,确保此特定文件名未分配给非PHP文件类型,即纯文本。


5
谢谢,这对我帮助很大,当我的一个文件一直显示为文本文件时,你的帮助非常有用。 - dan.codes
95
因为某些原因,文件名完整地添加到了文本文件类型中。所以我将 "somefilename.php" 注册为文本文件的模式。我已经将其移除,但在看到这篇文章之前,我没有想到去查找它。谢谢! - Scotty Waggoner
4
谢谢!我也遇到了同样奇怪的行为。我最初错误地创建了一个普通文件,然后尝试将其重命名为*.php,但它仍然显示为文本。读了这个评论并查看了文本文件。果然有一个带有完整文件名.php的单一注册模式-感谢。 - Ronnie Jespersen
4
您真是个圣人,这件事一直困扰着我。对于任何想知道的人,只需查看文本文件,最终我发现了像这样让我发疯的10个文件....耶!您太棒了! - Destreyf
25
找不到选项的人,可以前往“偏好设置”->“编辑器”->“文件类型”。 - Koeno
显示剩余11条评论

54
在PHPStorm 10中,您需要前往“文件”->“设置”,然后在那里找到“编辑器”->“文件类型”。如果是纯文本,可能会在文件类型“文本”下找到它。在“注册模式”下检查并从中删除您的文件。

1
哇,我的文件被列出来了!太疯狂了。我本来没想到要在那里检查,因为我以为这个列表中的扩展名只是通配符模式。谢谢 - 这对我有用! - phpguru

21

感谢@Scotty Waggoner

不知何故,整个文件名都被添加到了文本文件类型中。

在“设置|文件类型|文本|已注册的模式”中找到您的文件并将其移除。


1
谢谢您,耶稣。我显然不小心从一个我不记得点击的菜单中添加了完整的文件名和类型。 - exts
4
你可能做的是创建了一个没有扩展名的新文件,当弹出窗口询问文件类型时,你试图在窗口顶部的文件名后面添加“.php”。然而这并不会像你想象的那样重命名文件,而是将你的<文件名>.php添加到没有扩展名的默认文件类型(文本)中。我知道是因为我刚刚也这样做了,并且找到了这个帖子来解决它。 - Chris

20

不要试图追踪哪种文件类型产生冲突,最简单的解决方法是在Windows上转到文件>设置(在MacOS上为PHPStorm>首选项),然后搜索“文件类型”。

进入有问题的文件类型(在这种情况下是PHP),查找预期的文件扩展名(在这种情况下是.php)。

输入图像说明

如果您发现它丢失了(如上图所示),那么只需按下“已注册模式”下面的+按钮添加它。然后在打开的“添加通配符”窗口中,您需要键入:*.php

输入图像说明

PHPStorm将告诉您它被映射到另一种文件类型(导致此问题的文件类型),是否要将其移到该文件类型。只需单击“Yes”,即可解决问题。你完成了!

这比在其他文件类型中搜寻有问题的文件并删除要简单得多。


18

我不确定这个功能是否仅限于phpStorm 9,但有一个更简单的解决方案:如果文件扩展名为.php,您可以在项目浏览菜单中右键单击该文件,然后单击“标记为 php”。这对我来说解决了问题。


2
只有在你之前将其标记为纯文本时才有效。 - Chris Laarman
3
我猜他是不小心做了这件事 :) - drakonli
1
哇,谢谢!我有一些文件不符合任何定义的类型(图标是一个带有十字架的文本文件,不知道什么意思),所以找不到它们。这个方法可行! - Chris
是的,我和Chris遇到了完全相同的问题,这个方法最终解决了我的问题!谢谢! - Samuël Visser

10
在MacOS上的PHPStorm 2019.1版本中: PhpStorm > Preferences > Editor > File Types > Recognized File Types > Text 从“Registered Patterns”中删除包含文件名的条目,即如果“File.php”是有问题的文件,则删除“File.php”。请保留所有HTML标记。

3

右键点击文件 -> 覆盖文件类型 -> 设置为 PHP


1

我遇到了同样的问题,但我的文件不是“文本”类型,而是“由文件内容自动检测的文件类型”。

PhpStorm > 首选项 > 编辑器 > 文件类型 > 已识别的文件类型 > 由文件内容自动检测的文件类型


1
这个问题很老了,但我为那些无法解决它的人提供答案:
你可能已经删除了其中一个 PHP 开始标签(<?php)或结束标签(?>),因此以纯文本形式显示。

0

最受投票的答案不完整。

问题的来源

如果您创建一个没有添加文件扩展名的新文件,PHPStorm会询问您是否要自动检测内容以进行语法高亮显示。似乎这对于php内容不起作用。如果稍后添加扩展名(例如.php),您期望能够看到正确的高亮显示,但由于被列为“根据内容自动检测文件类型”,它将切换高亮显示。

修复方法:检查未正式高亮显示的文件是否注册为错误的文件类型

转到文件 -> 设置(Windows)或 PHPStorm -> 首选项(MacOs),然后搜索“文件类型”或导航到编辑器 -> 文件类型

查找“文本”和“根据内容自动检测文件类型”,确保您的文件未列在“文件名模式”下

预防措施:在设置中将“.php”扩展名添加到“文件名模式”

按照上述修复方法导航,并在“文件名模式”下添加“*.php”。如果您现在创建一个没有扩展名的文件,将其标记为“自动检测”,然后稍后添加扩展名,它将被正确识别为PHP文件


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