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
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
Jul 01 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
为你总结一些php信息函数
Oct 21 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
php实现登录页面的简单实例
2019/09/29 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
vuex入门最详细整理
2020/03/04 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
python如何停止递归
2020/09/09 Python
python中二分查找法的实现方法
2020/12/06 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
港湾网络笔试题
2014/04/19 面试题
模特大赛策划方案
2014/05/28 职场文书
医院义诊活动总结
2014/07/04 职场文书
市场部岗位职责
2015/02/12 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python