PCRE Regex/WordPress/剥离标签
PCRE Regex / WordPress / stripping tags
我正试图剥离Chrome插件添加到我们WordPress帖子中的标签。
Ginger软件拼写和语法检查器(https://chrome.google.com/webstore/detail/spell-checker-and-grammar/kdfieneakcjfaiglcfcgkidlkmlijjnh?hl=en)在幕后更改HTML,并在页面上留下class="GINGER_SOFTWARE_mark"的伪span标记。
我确实找到了一个不知名的WordPress插件,它去掉了这些,但他们已经更新了Chrome扩展,随着标签格式的改变,它不再工作了,作者已经擅离职守,所以我一直在尝试自己更新插件,我很接近,但需要帮助度过最后阶段。。。。有人接电话吗?
这是我正在剥离的标签的样本:
<span class="GINGER_SOFTWARE_mark" id="8199646e-ebe6-45e9-bbe2-b212389a8120">words go here</span>
我一直在尝试调整的插件是这样的:http://wordpress.org/plugins/ginger-tag-remover/
使用Debuggex,我能够获得与上面匹配的PCRE正则表达式:
'<span class'='"GINGER_SOFTWARE_mark'" id='"[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"'>(.*?)'<'/span'>
但是将它实现到PHP中并不是很好。。。
以下是从插件中提取的代码:
if ( !function_exists( 'add_action' ) ) {
echo 'Leave me alone. I don''t want trouble.';
exit;
}
function gtr_strip_ginger_tags($content){
$gtr_patern_array=array();
array_push($gtr_patern_array,array('pattern'=>'#'<span class'='''"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct'''"'>(.*?)'<'/span'>#m','replace'=>'$1'));
array_push($gtr_patern_array,array('pattern'=>'#'<span class'='''"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct'''"'>(.*?)'<'/span'>#m','replace'=>'$1'));
array_push($gtr_patern_array,array('pattern'=>'#'<span class'='''"GINGER_SOFATWARE_correct'''"'>(.*?)'<'/span'>#m','replace'=>'$1'));
array_push($gtr_patern_array,array('pattern'=>'#'<span class'='''"GINGER_SOFATWARE_spelling'''"'>(.*?)'<'/span'>#m','replace'=>'$1'));
foreach($gtr_patern_array as $pat){
$content=preg_replace($pat['pattern'],$pat['replace'],$content);
}
//$content.='<!-- GINGER CLEANED -->';
return $content;
}
add_filter('content_save_pre','gtr_strip_ginger_tags');
我试着添加这个:
array_push($gtr_patern_array,array('pattern'=>'#'<span class'='''"GINGER_SOFTWARE_mark'''" id='''"[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"''' '>(.*?)'<'/span'>#m','replace'=>'$1'));
我觉得我很接近,但不确定我需要调整什么,有什么建议吗?
卡鲁
您的代码中有"GINGER_SOFTAWARE"而不是"GINGER_StOFTWARE"。我认为这就是问题所在——如果这不起作用,请对此发表评论,我将进一步探讨。
--编辑--
然后,如果类是正确的,可以尝试使用RegExp来删除所有内容,比如:
'<span class'='"GINGER_SOFTWARE_mark'" ([^>]*)'>(.*?)'<'/span'>
相关文章:
- 在<页眉>标签
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- iframe正在添加标签,需要删除它们
- PHP网站:导出<表>到Excel-并剥离<img>并且<a>标签
- jQuery Html负载剥离<表单>标签
- PCRE Regex/WordPress/剥离标签
- JQuery,剥离所有标签,包装新标签并克隆和附加
- 我应该即时使用条带标签还是存储在已经剥离的服务器上
- 使用白名单安全地剥离javascript中的html标签
- jQuery从XML中剥离标签
- Ckeditor 4.5.7剥离HTML标签,尽管配置.allowedContent = true
- 微小的MCE剥离facebook标签
- 如何在不使用正则表达式的情况下在javascript中剥离HTML
标签
- 谷歌博客剥离
标签,需要一种方法来文本缩进每个撇号的开始
- 使用javascript剥离标签并处理换行
- TinyMCE, IE9,剥离脚本<标签
- 从ios中的数据中剥离HTML标签
- 如何剥离<br>标记并用<p>并且</p>标签
- 从HTML内容Jquery中剥离特定的span标签
- 剥离标签vs htmlentities vs其他.在php中安全性更好