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中防止SQL注入实现代码
Feb 19 PHP
php中inlcude()性能对比详解
Sep 16 PHP
跟我学Laravel之路由
Oct 15 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
PHP+ajax分页实例简析
Dec 07 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
php创建类并调用的实例方法
2019/09/25 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
python实现神经网络感知器算法
2017/12/20 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
python区分不同数据类型的方法
2019/10/14 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
浅析Python的命名空间与作用域
2020/11/25 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
任意存:BOXFUL
2018/05/21 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
创业计划书之外语培训班
2019/11/02 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
python 命令行传参方法总结
2021/05/25 Python
Vue3.0 手写放大镜效果
2021/07/25 Vue.js
Python之基础函数案例详解
2021/08/30 Python