问题:在HTML中,表达式<<
是否存在,其中第一个<
是HTML标记的开头?
我的问题的根源如下。我基于WordPress运行mathematics website。你可以想象,帖子中有很多<
和>
(数学不等式)。
对于长篇文章,我使用&#34;继续阅读&#34; WordPress提供的功能。当显示几个帖子&#34;继续阅读&#34;功能,使用<!--more-->
标记,WordPress函数force_balance_tags用于正确平衡可能分布在<!--more-->
标记上的HTML标记。
PHP force_balance_tags
函数中存在错误。例如HMTL代码
< <strong>We</strong>
产生输出
< <strong>We
这是错误的,因为<bold>
HTML标记未正确关闭。
我试图解决这个问题...但我来自遥远的地方(25年前的FORTRAN编程;-))。 force_balance_tags
正在使用正则表达式。
因此我的初步问题。该错误的根本原因可能是force_balance_tags
正在寻找一个>
符号来关闭<
初始符号,该符号不会被解释为不等号符号。
注意:我通过帖子中的Latex <
更改\le
符号找到了解决方法。但出于好奇,我有兴趣纠正force_balance_tags
!
答案 0 :(得分:0)
不,不能。 HTML使用XML的语法,其中<
注释元素。元素的名称不能包含字符<
。
阅读段落&#34; XML命名规则&#34;在这里:http://www.w3schools.com/xml/xml_elements.asp
答案 1 :(得分:0)
这不是错误。拥有多个标记开头(< <
)是无效标记。标记无效是您应该总是尽量避免的;即使它在某些或所有浏览器中都能正确呈现,也无法保证。 Wordpress的force_balance_tags
是一个破坏的案例。
由于您的网站经常需要这样的字符,正如您所说,您应该通过一个函数运行违规部分,该函数将用其html实体等价物<
替换html字符>
,<
1}},>
这是php中的一个例子,使用str_replace:
str_replace(["<", ">"], ["<", ">"], $mathRelatedContent);
但是,有了这个问题,您将无法再在帖子中使用直接的html标记。看看添加替代标记以及html转义(在Stack Overflow上发布问题时,请考虑类似于How to Format
部分的内容!)