这张图片描述了我的问题,这是一个 C 代码,如下所示。
<pre class="brush: cpp">
#include <stdio.h>
int main() {
printf("Hello world<imnew>");
return 0;
}
</pre>
我得到的节点输出如下。
为什么会这样?我该如何解决?
这张图片描述了我的问题,这是一个 C 代码,如下所示。
<pre class="brush: cpp">
#include <stdio.h>
int main() {
printf("Hello world<imnew>");
return 0;
}
</pre>
我得到的节点输出如下。
为什么会这样?我该如何解决?
我有同样的问题,虽然我没有检查“纠正错误并切断 HTML”过滤器。但我找到了一个临时解决方案,首先将小于字符转义为 <
<pre class="brush:cpp">
#include <iostream>
using namespace std;
void main()
{
cout << "Hello World!" << endl; cout << "Welcome to C++ Programming" << endl; }
</pre>
或者您可以生成自定义过滤器 以将大于和小于符号转义
>
为<
这是在语法荧光笔输入过滤器之后执行的“纠正错误并切断 HTML”输入过滤器的问题。从“纠正错误并切断 HTML”输入过滤器执行的代码如下。
return filter_dom_serialize(filter_dom_load($text));
我尝试执行以下代码。
$text = <<<HTML
<pre class="brush: cpp">
#include <stdio.h>
int main() {
printf("Hello world<imnew>");
return 0;
}
</pre>
HTML;
print filter_dom_serialize(filter_dom_load($text));
我得到的输出如下。
<pre class="brush: cpp">
#include <stdio.h>
int main() {
printf("Hello world<imnew>");
return 0;
}
</imnew></stdio.h></pre>
原因正是如此<stdio.h>
,并且<imnew>
被解释为标签,并且它们在之前被关闭</pre>
。语法荧光笔应该转义 any <
,并>
在代码中找到以避免此类问题。
除了@guneysus 回答,将所有 < 更改为 < 也有效。