PHP限制HTML内容中图片必须是本站的方法


Posted in PHP onJune 16, 2015

本文实例讲述了PHP限制HTML内容中图片必须是本站的方法。分享给大家供大家参考。具体实现方法如下:

1. PHP代码如下:

<?php
$dom = new DOMDocument;
$dom->loadHTML(file_get_contents('input.html'));
$xpath = new DOMXpath($dom);
$img = $xpath->query('//img');
foreach($img as $i) {
  $url = parse_url($i->getAttribute('src'));
  if(isset($url['host']) && in_array($url['host'], array('yourdomain.com', 'www.yourdomain.com')) == false) {
    // show an error
      // -- or --
      // remove the tag: $i->parent->removeChild($i)
    echo sprintf('[FAIL] %s' . PHP_EOL, $i->getAttribute('src'));
  }
  else {
    echo sprintf('[PASS] %s' . PHP_EOL, $i->getAttribute('src'));
  }
}

2. 测试HTML代码:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p><img src="/image.jpg"></p>
<p><img src="http://yourdomain.com/image.jpg"></p>
<p><img src="http://www.yourdomain.com/image.jpg"></p>
<p><img src="http://otherdomain.com/image.jpg"></p>

3. 运行结果:

[PASS] /image.jpg
[PASS] http://yourdomain.com/image.jpg
[PASS] http://www.yourdomain.com/image.jpg
[FAIL] http://otherdomain.com/image.jpg

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
一个ftp类(ini.php)
Oct 09 PHP
人大复印资料处理程序_查询篇
Oct 09 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
PHP SQLite类
May 07 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
php抽奖小程序的实现代码
Jun 18 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
php绘制一条弧线的方法
Jan 24 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
php单例模式的简单实现方法
Jun 10 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
php采集中国代理服务器网的方法
Jun 16 #PHP
分享php分页的功能模块
Jun 16 #PHP
PHP生成plist数据的方法
Jun 16 #PHP
php动态绑定变量的用法
Jun 16 #PHP
php实现在服务器端调整图片大小的方法
Jun 16 #PHP
PHP正则验证Email的方法
Jun 15 #PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 #PHP
You might like
通过html表格发电子邮件
2006/10/09 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
药品业务员岗位职责
2014/04/17 职场文书
合作协议书
2014/04/23 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
周年庆典答谢词
2015/01/20 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
小学思品教学反思
2016/02/20 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL