php字符截取与过滤
Jun 06, 2016 pm 08:50 PM
1月19日,装扮成《白蛇传》中“白娘子”(中)的演员在南京玄奘寺“腊八节品腊八粥”活动上为市民盛粥。 [caption id="attachment_45" align="aligncenter" width="432"]<a href="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg"><img class=" wp-image-45 lazy" src="/static/imghw/default1.png" data-src="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg" alt="“白娘子”布施腊八粥(组图)" style="max-width:90%" style="max-width:90%"></a> “白娘子”布施腊八粥(组图)[/caption] 当日是中国传统的腊八节,南京玄奘寺熬制了咸、甜两种口味的上万份腊八粥,众多市民前来品粥祈福。 新华社记者孙参摄
以上代码截取掉HTML标签,图片啊、[caption 啊等。
目前我用的是
<?php echo mb_strimwidth(strip_tags(get_the_content()), 0, 120,"...");?>
问题:貌似HTML标签没有被过滤掉
回复内容:
1月19日,装扮成《白蛇传》中“白娘子”(中)的演员在南京玄奘寺“腊八节品腊八粥”活动上为市民盛粥。 [caption id="attachment_45" align="aligncenter" width="432"]<a href="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg"><img class=" wp-image-45 lazy" src="/static/imghw/default1.png" data-src="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg" alt="“白娘子”布施腊八粥(组图)" style="max-width:90%" style="max-width:90%"></a> “白娘子”布施腊八粥(组图)[/caption] 当日是中国传统的腊八节,南京玄奘寺熬制了咸、甜两种口味的上万份腊八粥,众多市民前来品粥祈福。 新华社记者孙参摄
以上代码截取掉HTML标签,图片啊、[caption 啊等。
目前我用的是
<?php echo mb_strimwidth(strip_tags(get_the_content()), 0, 120,"...");?>
问题:貌似HTML标签没有被过滤掉
我觉得这样的替换比较完美,而且兼容其它标签
$content = '1月19日,装扮成《白蛇传》中“白娘子”(中)的演员在南京玄奘寺“腊八节品腊八粥”活动上为市民盛粥。 [caption id="attachment_45" align="aligncenter" width="432"]<a href="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg"><img class=" wp-image-45 lazy" src="/static/imghw/default1.png" data-src="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg" alt="“白娘子”布施腊八粥(组图)" style="max-width:90%" style="max-width:90%"></a> “白娘子”布施腊八粥(组图)[/caption] 当日是中国传统的腊八节,南京玄奘寺熬制了咸、甜两种口味的上万份腊八粥,众多市民前来品粥祈福。 新华社记者孙参摄'; preg_replace(array("/]+>/s", "/\[[^\]]+\]/s"), '', $content);
话说[caption]
只算是BBcode不算是HTML标签吧,所以你用strip_tags
是木有效果的,所以你可以考虑先把BBcode转换为HTML标签再用strip_tags
就应该正常了吧。
如果格式都是这么统一的话,可以考虑用下面的代码:
$s = array('[caption', ']<a array></a><a>'); str_replace($s, $r, get_the_content());</a>
效率什么的我是不太清楚了,就当为你提供另外一种思路吧~
$pat[0]='/(\[caption)([\s|\S]+)\/>/'; $pat[1]='/\[\/caption\]/'; $str='[caption id="attachment_45" align="aligncenter" width="432"]<a href="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg"><img class=" wp-image-45 lazy" src="/static/imghw/default1.png" data-src="http://cqtlmx.com/wp-content/uploads/2013/01/baili.jpg" alt="“白娘子”布施腊八粥(组图)" style="max-width:90%" style="max-width:90%"></a> “白娘子”布施腊八粥(组图)[/caption]'; echo preg_replace($pat,'',$str);
不知道lz的期望输出结果是什么.
如果是想删除整个shortcode [caption][/caption]
用wp内置的函数remove_shortcode或者remove_all_shortcodes
如果是想保留
"白娘子"布施腊八粥(组图)
也很简单.
$content = wp_strip_all_tags(str_replace(array('[',']'),array(''),$content));

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

How To Set Up Visual Studio Code (VS Code) for PHP Development
