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 相关文章推荐
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
PHP积分兑换接口实例
Feb 09 PHP
php实现将数组转换为XML的方法
Mar 09 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 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
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
vue 如何使用递归组件
2020/10/23 Javascript
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
使用python为mysql实现restful接口
2018/01/05 Python
python简单实现操作Mysql数据库
2018/01/29 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Python 合并拼接字符串的方法
2020/07/28 Python
荷兰本土平价百货:HEMA
2017/10/23 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
英语生日邀请函
2014/01/23 职场文书
语文教学随笔感言
2014/02/18 职场文书
联欢晚会主持词
2014/03/25 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
道歉短信大全
2015/05/12 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技