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生成图形验证码几种方法小结
Aug 15 PHP
php 强制下载文件实现代码
Oct 28 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
通过php修改xml文档内容的方法
Jan 23 PHP
php获取系统变量方法小结
May 29 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
laravel清除视图缓存的代码
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(3) php 函数
2010/02/15 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
使用Vue构建可重用的分页组件
2018/03/26 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
Django中URLconf和include()的协同工作方法
2015/07/20 Python
python简单实现获取当前时间
2016/08/27 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
详解Python self 参数
2019/08/30 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
资料员的岗位职责
2013/11/20 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
撤诉申请怎么写
2015/05/19 职场文书
结婚纪念日感言
2015/08/01 职场文书
会议室使用管理制度
2015/08/06 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android