【问题标题】:Can two < symbols occur consecutively for HTML tag?HTML标签可以连续出现两个<符号吗?
【发布时间】:2017-02-12 18:17:25
【问题描述】:

问题:在 HTML 中表达式 &lt;&lt; 是否存在于第一个 &lt; 是 HTML 标记的开头?

我的问题的起源是以下一个。我基于 WordPress 运行 mathematics website。可以想象,帖子中有很多&lt;&gt;(数学不等式)。

对于长篇文章,我使用 WordPress 提供的“继续阅读”功能。当多个帖子显示为具有“继续阅读”功能时,使用 &lt;!--more--&gt; 标签,WordPress 功能 force_balance_tags 用于正确平衡可能分布在 &lt;!--more--&gt; 标签上的 HTML 标签。

PHP force_balance_tags 函数中存在错误。例如 HMTL 代码

&lt; &lt;strong&gt;We&lt;/strong&gt;

产生输出

&lt; &lt;strong&gt;We

这是错误的,因为&lt;bold&gt; HTML 标记未正确关闭。

我正在尝试修复错误...但我来自遥远的地方(25 年前的 FORTRAN 编程;-))。 force_balance_tags 正在使用正则表达式。

因此我最初的问题。该错误的根本原因可能是force_balance_tags 正在寻找一个&gt; 符号来关闭&lt; 初始符号,该符号不会被解释为不等式符号。

注意:我通过在我的帖子中将 &lt; 符号更改为 Latex \le 找到了解决方法。但出于好奇,我有兴趣纠正force_balance_tags

【问题讨论】:

  • 为什么不使用 <或 <?仅使用“
  • @JeroenHeier 是的,这是我作为解决方法所做的。但我有兴趣修复 force_balance_tags... 为了好玩!
  • &lt; 在 HTML 中保留,因此如果您希望任何人在页面上实际看到 &lt;,您需要打印等效的 HTML entity character

标签: php html regex wordpress


【解决方案1】:

不,它不能。 HTML 使用 XML 的语法,其中&lt; 表示一个元素。元素名称不能包含字符&lt;

在此处阅读“XML 命名规则”段落:http://www.w3schools.com/xml/xml_elements.asp

【讨论】:

  • HTML 不是 XML。它只是不是,所以 just 链接到 xml 命名方案在这里没有用处。虽然答案是正确的,而且命名对于 HTML 也确实无效,但 HTML 不是 XML。
  • 不要试图对它迂腐,但你不应该尝试在那里适应 XML。 HTML 使用 HTML 语法。 XHTML 是 XML 的应用程序,这是真的,但 HTML 却不是。你可以用 XML 语法做你不能用 HTML 做的事情(例如命名空间),你可以用 HTML 做你不能用 XML 做的事情。检查 w3c,(不是 w3schools),例如:w3c.github.io/html/introduction.html#html-vs-xhtml 链接到 xml 命名方案在这里没有意义,即使 HTML 中的命名方案相似。
【解决方案2】:

这不是错误。拥有多个标签开启器 (&lt; &lt;) 是无效标记。无效标记是您应该始终尽量避免的事情;即使它在某些或所有浏览器中正确呈现,也不能保证。 Wordpress 的force_balance_tags 是一个中断的案例。

由于您的网站经常需要这样的字符,正如您所说,您应该通过一个函数运行违规部分,该函数将替换 html 字符 &amp;lt;&gt; 与它们的 html 实体等效项、&amp;lt;、@987654327 @

这是一个 php 中的示例,使用 str_replace:

str_replace(["<", ">"], ["&lt;", "&gt;"], $mathRelatedContent);

但是,这样会出现问题,即您不能再在帖子中使用直接 html 标记。看看添加替代标记以及 html 转义(在 Stack Overflow 上发布问题时考虑类似于 How to Format 部分!)

【讨论】:

    猜你喜欢
    • 2014-08-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    相关资源
    最近更新 更多