求一php正则式

lirenzh3 2010-07-04 10:38:45
$str="<p>内容内容内容内容内容……内容<img src="" /> 内容内容内容……内容……<a href="">内容</a>内容内容内容内容</p>

我想要先提取第一个img标签(如果str有img标签的话,没有img标签也不会显示错误,有多个也只提取第一个),然后在提取一定长度(比如140字节)的内容,最后去掉<p> <a>等标签

菜鸟在此谢谢你!
...全文
35 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng1984zhang 2010-07-05
preg_match_all如果能匹配到结果 也是应该是一个二维数组,第一维是包含html标签的,第二维不包含标签

只匹配第一次 使用 int preg_match(string 正则,string 原字符串,一维array 结果数组)

至于140字节 由于UTF8好像是1个汉字占用3字节 所以正好截取140字节可能会出现乱码

preg_match("/<img[^>]>.{140}/",$str,$result);
$result=$result[0];
$result=preg_replace("/<[\/]?[ap]{1}[^>]*>/","",$result);

初来乍到,请多关照
回复
standford 2010-07-05
关于长度很好办的,看你的编码,如果是GB2312,直接用substr($str,0,140),如果是UTF8码网上有好多资料 ,你可以下载处理。
回复
standford 2010-07-05
$s="<p>内容内容内容内容内容……内容<img src="" /> 内容内容内容……内容……<a href="">内容</a>内容内容内容内容</p>";

preg_match_all('/<.+?>/', strip_tags($s, '<img>'), $r);
print_r($r[0]);
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告