让 php 回显 html 标签。notepad++ 6.4.5 可以突出显示 php 内部和 php 外部的标签。
notepad++ 6.5 可以突出显示 php 外部的标签,而 php 代码内部没有突出显示。
如何启用 php 代码中的标签突出显示?
记事本++ 6.4.5:
记事本++ 6.5:
答案1
我原本希望 notepad++ 的开发人员能给出解决方案,重新提供在 php 代码中高亮显示 html 代码的功能。但这并没有发生……因此我找到了一个临时解决方法:
1)在 notepad++ 中打开 php 文件
2)设置 HTML 语言:转到语言 => H => HTML
3)现在 html 标签在 php 代码中突出显示。
如果您关闭并再次打开 php 文件,则必须再次执行 1-3。
为了使此操作自动完成:
编辑 langs.xml
1)更换
<Language name="html" ext="html htm shtml shtm xhtml hta"
和
<Language name="html" ext="html htm shtml shtm xhtml hta php"
这将使 php 文件被解析为 html 语言
2)更换
<Language name="php" ext="php php3 phtml"
和
<Language name="php" ext="php1 php3 phtml"
这将禁止将 php 文件解析为 php 语言。如果不执行步骤 2 => 步骤 1 则无效。
编辑 functionList.xml:
进行这些更改后,函数列表将为空。以下是修复方法:需要编辑 functionList.xml
1)更换:
<association langID="6" id="java"/>
<association langID="9" id="xml_node"/>
和
<association langID="6" id="java"/>
<association langID="8" id="html_function"/>
<association langID="9" id="xml_node"/>
2)在最后一个关闭之后,添加这个(它是 php_function 的副本,重命名为 html_function):
<parser id="html_function" displayName="PHP" commentExpr="((/\*.*?\*)/|(//.*?$))">
<classRange
mainExpr="^[\s]*(class|abstract[\s]+class|final[\s]+class)[\t ]+[\w]+([\s]*|[\s]*(extends|implements)[\s]+[\w\\]+[\s]*)?\{"
openSymbole = "\{"
closeSymbole = "\}"
displayMode="node">
<className>
<nameExpr expr="(class|abstract[\s]+class|final[\s]+class)[\s]+[\w]+"/>
<nameExpr expr="[\s]+[\w]+\Z"/>
<nameExpr expr="[\w]+\Z"/>
</className>
<function
mainExpr="^[\s]*((static|public|protected|private|final)*(\s+(static|public|protected|private|final))+[\s]+)?(function[\s]+)+([\w]+([\s]+[\w]+)?([\s]+|\*[\s]+|[\s]+\*|[\s]+\*[\s]+))?([\w_]+[\s]*::)?(?!(if|while|for|switch))[\w_~]+[\s]*\([^\{]*\{">
<functionName>
<funcNameExpr expr="(?!(if|while|for|switch))[\w_]+[\s]*\([^\{]*"/>
<!-- comment below node if want display method with parmas -->
<funcNameExpr expr="(?!(if|while|for|switch))[\w_]+"/>
</functionName>
</function>
</classRange>
<function
mainExpr="^[\s]*function[\s]+\w+\("
displayMode="$className->$functionName">
<functionName>
<nameExpr expr="(?!(if|while|for))[\w_]+[\s]*\("/>
<nameExpr expr="(?!(if|while|for))[\w_]+"/>
</functionName>
<className>
<nameExpr expr="[\w_]+(?=[\s]*::)"/>
</className>
</function>
</parser>
编辑\plugins\APIs\html.xml和\插件\APIs\php.xml(notepad++ 6.9.1 及以上版本需要此工具)
1)复制php.xml中的内容<AutoComplete>...</AutoComplete>
并粘贴到html.xml中,然后</AutoComplete>
答案2
您应该将 PHP 文档创建为 HTML 文档的模板,如下所示。Notepad++ 只是通过将您的echo
字符串视为 PHP 字符串而不是突出显示它们来支持良好的编码实践。如果您想分解为 HTML,则只需在?>
PHP 语法突出显示的末尾添加一个,它就会将其突出显示为 HTML。然后<?php
根据需要再次使用以启动 PHP 代码。您不需要echo
输出 HTML,只需结束该<?php ... ?>
块并像平常一样键入 HTML。
<!doctype html>
<html>
...
<div><?php echo "content"; ?></div>
...
</html>