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 IF ELSE简化/三元一次式的使用
Aug 22 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
PHP中常用的转义函数
Feb 28 PHP
php eval函数一句话木马代码
May 21 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
Jul 29 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
YII框架页面缓存操作示例
Apr 29 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
PHP基于进程控制函数实现多线程
Dec 09 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为SHOPEX增加日志功能代码
2010/07/02 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
js里的prototype使用示例
2010/11/19 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
Python3搜索及替换文件中文本的方法
2015/05/22 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
医院实习接收函
2014/01/12 职场文书
售后客服个人自我评价
2014/09/14 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
学籍证明模板
2015/06/18 职场文书
学校就业保障协议书
2019/06/24 职场文书