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 相关文章推荐
判“新”函数:得到今天与明天的秒数
Oct 09 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
php使用Jpgraph绘制3D饼状图的方法
Jun 10 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
功能强大的php文件上传类
Aug 29 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
php实现分页功能的详细实例方法
Sep 29 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
服务器web工具 php环境下
2010/12/29 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
php多重接口的实现方法
2015/06/20 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
采用call方式实现js继承
2014/05/20 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
前端性能优化及技巧
2016/05/06 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
整理Python中的赋值运算符
2015/05/13 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
python绘制圆柱体的方法
2018/07/02 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
德国机车企业:FC-Moto
2017/10/27 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
高中同学聚会邀请函
2014/01/11 职场文书
大型营销活动计划书
2014/04/28 职场文书
医院节能减排方案
2014/06/13 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python