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 与 MySQL 数据库操作函数详解
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Dec 19 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
完善的jquery处理机制
2016/02/21 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
Python中isnumeric()方法的使用简介
2015/05/19 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python实现最小二乘法线性拟合
2019/07/19 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
新闻网站实习自我鉴定
2013/09/25 职场文书
办公室保洁员岗位职责
2013/12/02 职场文书
新学期校长寄语
2014/01/18 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
大学军训感言400字
2014/03/11 职场文书
王老吉广告词
2014/03/20 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
python文件与路径操作神器 pathlib
2022/04/01 Python
解决Oracle数据库用户密码过期
2022/05/11 Oracle