首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wp_kses清除正在删除有效的字体家族名称。

wp_kses清除正在删除有效的字体家族名称。
EN

Stack Overflow用户
提问于 2018-06-29 15:49:06
回答 1查看 211关注 0票数 0

在WordPress中,我有一个不能控制(用户生成的)内容的字符串。例如,假设您拥有以下内容:

代码语言:javascript
复制
$string = 'before <p class="test-class" style="font-family: &quot;Brush Script Mt&quot;;">text</p> after';

然后需要在上面使用wp_kses,但是样式部分会被完全删除:

代码语言:javascript
复制
$a = wp_kses( $string, array(
    'p' => array(
        'class' => array(),
        'style' => array()
    )
) );
var_dump(  $a ); // returns 'before <p class="test-class">text</p> after'

但是,如果您删除了&quot;部件,那么wp_kses将按预期工作:

代码语言:javascript
复制
$string = 'before <p class="test-class" style="font-family: Brush Script Mt;">text</p> after';

现在它确实输出了

代码语言:javascript
复制
$b = wp_kses( $string, array(
    'p' => array(
        'class' => array(),
        'style' => array()
    )
) );
var_dump(  $b ); // returns 'before <p class="test-class" style="font-family: Brush Script Mt">text</p> after'

我无法更改源字体系列,它总是带有字体家族名称(")周围的引号,我还需要在字符串上使用wp_kses。

有什么办法让wp_kses接受字体-家庭与"?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 16:24:44

您不应该试图让wp_kses()接受损坏的HTML。您可能应该用单引号(撇号)替换&quot;,或者直接删除它们。

如果你让它把这些引号保留在里面,你最终会得到:

代码语言:javascript
复制
before <p class="test-class" style="font-family: "Brush Script Mt";">text</p> after

这些嵌套的引号会破坏HTML。将样式属性保留为style="font-family: ",希望浏览器忽略其馀的属性。

所以我想补充一下:

代码语言:javascript
复制
$string = str_replace( "&quot;",  "", $string );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51105406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档