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 相关文章推荐
GD输出汉字的函数的分析
Oct 09 PHP
用php实现批量查询清除一句话后门的代码
Jan 20 PHP
PHP日期处理函数 整型日期格式
Jan 12 PHP
PHP Curl多线程原理实例详解
Nov 06 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 PHP
yii去掉必填项中星号的方法
Dec 28 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
PHP使用Session实现上传进度功能详解
Aug 06 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 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
一个改进的UBB类
2006/10/09 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
python赋值操作方法分享
2013/03/23 Python
python算法学习之计数排序实例
2013/12/18 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python 26进制计算实现方法
2015/05/28 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
django跳转页面传参的实现
2020/09/17 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
专科应届生求职信
2013/11/24 职场文书
交通安全寄语大全
2014/04/08 职场文书
关于责任的演讲稿
2014/05/20 职场文书
西湖英语导游词
2015/02/06 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
对讲机的最大通讯距离是多少
2022/02/18 无线电