喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

招聘PHP开发人员(北京)

上一主题 下一主题
     
标题: 内容显示前对图片处理  
 
xiaotao5 (xiaotao5)
论坛元老
Rank: 8Rank: 8
我要当老大


UID 20091
精华 0
积分 35579
帖子 390
金钱 35579 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2003-5-23
来自 浙江
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
内容显示前对图片处理

<?php
function bxcvimg($str,$width){
   $patterns[0] = "/(<img[^>]*)(onclick[ \t]*=[ \t]*[^ \t\/>]*)([^\/>]*[ \t\/]*>)/is";
   $patterns[1] = "/(<img[^>]*)(onload[ \t]*=[ \t]*[^ \t\/>]*)([^\/>]*[ \t\/]*>)/is";
   $patterns[2] = "/(<img[^>]*)(width[ \t]*=[ \t]*[^ \t\/>]*)([^\/>]*[ \t\/]*>)/is";
   $patterns[3] = "/(<img[^>]*)(width[ \t]*:[ \t]*[^ \t\/>]*)([^\/>]*[ \t\/]*>)/is";
   $patterns[4] = "/(<img[^>]*)(height[ \t]*=[ \t]*[^ \t\/>]*)([^\/>]*[ \t\/]*>)/is";
   $patterns[5] = "/(<img[^>]*)(height[ \t]*:[ \t]*[^ \t\/>]*)([^\/>]*[ \t\/]*>)/is";
   $patterns[6] = "/(<img)([^>]*)([ \t\/]*>)/is";
   $replacements[0] = '\\1\\3';
   $replacements[1] = '\\1\\3';
   $replacements[2] = '\\1\\3';
   $replacements[3] = '\\1\\3';
   $replacements[4] = '\\1\\3';
   $replacements[5] = '\\1\\3';
   $replacements[6] = '\\1 onload="javascript:if(this.width>'.$width.')this.width='.$width.'" onclick="window.open(this.src)"\\2\\3';
   $str=preg_replace($patterns,$replacements,$str);
   return $str;
}
?>

作用: 过滤掉内容中的 height width onclick onload,重新添加onclick onload。
采集的内容中可能图片过大,这样就会撑破模板,在输出前使用上面函数就正常显示了。
例子:http://www.bxcms.com/data/2006/07/8.htm
2006-8-5 01:17 PM#1
查看资料  访问主页  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
好好,个个高手!



五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-8-5 01:35 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
xiaotao5 (xiaotao5)
论坛元老
Rank: 8Rank: 8
我要当老大


UID 20091
精华 0
积分 35579
帖子 390
金钱 35579 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2003-5-23
来自 浙江
状态 离线
[推荐阅读] frame的问题
我是低手,
上面过程有点长,如果能有短点的就更好了。

[ 本帖最后由 xiaotao5 于 2006-8-5 01:56 PM 编辑 ]
2006-8-5 01:52 PM#3
查看资料  访问主页  发短消息  顶部
 
xiaotao5 (xiaotao5)
论坛元老
Rank: 8Rank: 8
我要当老大


UID 20091
精华 0
积分 35579
帖子 390
金钱 35579 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2003-5-23
来自 浙江
状态 离线
[推荐阅读] 小偷程序的查询结果获取问题
改进版本,只是还有个问题,当onload="javascript:abc()">结尾时就出错了。因为把<img的结尾符号吃掉了,但是不吃它又不行,不吃它时 onload="javascript:if(this.width>200)"就出问题。

function bxcvimg($str,$width){
   $patterns[0] = "/(<img[^>]*)(onload[\s]*=[\s]*[^\s]*)([^>]*[\s\/]*>)/is";
   $patterns[1] = "/(<img[^>]*)(onclick[\s]*=[\s]*[^\s>]*)([^>]*[\s\/]*>)/is";
   $patterns[2] = "/(<img[^>]*)(width[\s]*=[\s]*[^\s>]*)([^>]*[\s\/]*>)/is";
   $patterns[3] = "/(<img[^>]*)(width[\s]*:[\s]*[^\s>]*)([^>]*[\s\/]*>)/is";
   $patterns[4] = "/(<img[^>]*)(height[\s]*=[\s]*[^\s>]*)([^>]*[\s\/]*>)/is";
   $patterns[5] = "/(<img[^>]*)(height[\s]*:[\s]*[^\s>]*)([^>]*[\s\/]*>)/is";
   $patterns[6] = "/(<img)([^>]*)([\s\/]*>)/is";
   $replacements[0] = '\\1\\3';
   $replacements[1] = '\\1\\3';
   $replacements[2] = '\\1\\3';
   $replacements[3] = '\\1\\3';
   $replacements[4] = '\\1\\3';
   $replacements[5] = '\\1\\3';
   $replacements[6] = '\\1 onload="javascript:if(this.width>'.$width.')this.width='.$width.'" onclick="window.open(this.src)"\\2\\3';
   $str=preg_replace($patterns,$replacements,$str);
   return $str;
}
2006-8-11 01:26 PM#4
查看资料  访问主页  发短消息  顶部
 
xiaotao5 (xiaotao5)
论坛元老
Rank: 8Rank: 8
我要当老大


UID 20091
精华 0
积分 35579
帖子 390
金钱 35579 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2003-5-23
来自 浙江
状态 离线
[推荐阅读] 谁作过用js来分页
这回正确了

function bxcvimg($str,$width){
   $patterns[0] = "/(<img[^>]*)(onload[\s]*=[\s\"\']*[^\s\"\']*[\"\']?)([^>]*[\s\/]*>)/is";
   $patterns[1] = "/(<img[^>]*)(onclick[\s]*=[\s\"\']*[^\s\"\']*[\"\']?)([^>]*[\s\/]*>)/is";
   $patterns[2] = "/(<img[^>]*)(width[\s]*=[\s\"\']*[^\s\"\']*[\"\']?)([^>]*[\s\/]*>)/is";
   $patterns[3] = "/(<img[^>]*)(width[\s]*:[\s\"\']*[^\s\"\']*[\"\']?)([^>]*[\s\/]*>)/is";
   $patterns[4] = "/(<img[^>]*)(height[\s]*=[\s\"\']*[^\s\"\']*[\"\']?)([^>]*[\s\/]*>)/is";
   $patterns[5] = "/(<img[^>]*)(height[\s]*:[\s\"\']*[^\s\"\']*[\"\']?)([^>]*[\s\/]*>)/is";
   $patterns[6] = "/(<img)([^>]*)([\s\/]*>)/is";
   $replacements[0] = '\\1\\3';
   $replacements[1] = '\\1\\3';
   $replacements[2] = '\\1\\3';
   $replacements[3] = '\\1\\3';
   $replacements[4] = '\\1\\3';
   $replacements[5] = '\\1\\3';
   $replacements[6] = '\\1 onload="javascript:if(this.width>'.$width.')this.width='.$width.'" onclick="window.open(this.src)"\\2\\3';
   $str=preg_replace($patterns,$replacements,$str);
   return $str;
}
2006-8-11 01:35 PM#5
查看资料  访问主页  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026512 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP