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个人网站架设连环讲(二)
Oct 09 PHP
PHP4实际应用经验篇(3)
Oct 09 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php实现的美国50个州选择列表实例
Apr 20 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
CI框架集成Smarty的方法分析
May 17 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 PHP
PHP强制转化的形式整理
May 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
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
python实现电子产品商店
2019/02/26 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
python实现快递价格查询系统
2020/03/03 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
python删除某个目录文件夹的方法
2020/05/26 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
优秀教育工作者事迹材料
2014/12/24 职场文书
海上钢琴师的观后感
2015/06/11 职场文书