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
封装一个PDO数据库操作类代码
Sep 09 PHP
PHP 字符串分割和比较
Oct 06 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php需登录的文件上传管理系统
Mar 21 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
php适配器模式简单应用示例
Oct 23 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的一个登录的类 [推荐]
2007/03/16 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
php 常用类整理
2009/12/23 PHP
PHP 加密解密内部算法
2010/04/22 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
JS操作JSON要领详细总结
2013/08/25 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python双向链表实现实例代码
2013/11/21 Python
Python通过poll实现异步IO的方法
2015/06/04 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
python中PIL安装简单教程
2016/04/21 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
python实现动态创建类的方法分析
2019/06/25 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
什么是网络协议
2016/04/07 面试题
自考生自我评价分享
2014/01/18 职场文书
爱情保证书范文
2014/02/01 职场文书
关于母亲节的感言
2014/02/04 职场文书
大学生社团活动总结
2014/04/26 职场文书
家庭贫困证明
2014/09/23 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
Golang Web 框架Iris安装部署
2022/08/14 Python