PHP限制HTML内容中图片必须是本站的方法_php技巧

本文实例讲述了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=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.com/image.jpg></p>
<p><img src=https://yunqi-tech.oss-cn-hangzhou.aliyuncs.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程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索html
, php
, 图片
限制
html收藏本站代码、html 本站已运行、html建立本站搜索框、php收藏本站代码、php 只响应本站来源,以便于您获取更多的相关知识。

时间: 2024-09-14 19:21:32

PHP限制HTML内容中图片必须是本站的方法_php技巧的相关文章

php实现图片以base64显示的方法_php技巧

本文实例讲述了php实现图片以base64显示的方法.分享给大家供大家参考,具体如下: 这里实现图片以字符串形式保存到网页,从而不需要再加载图片的功能. 这是在RFC2397中定义的Data URI scheme,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入,比如上面那串字符,其实是一张图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到了. 在上面的Data URI中,data表示取得数据的协定名称,image/jpeg是数据类型名称,base64是数据的编码方法,逗号

php中使用base HTTP验证的方法_php技巧

本文实例讲述了php中使用base HTTP验证的方法.分享给大家供大家参考.具体如下: function http_auth($un, $pw, $realm = "Secured Area") { if(!(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) && $_SERVER['PHP_AUTH_USER'] == $un && $_SERVER[

PHP实现图片不变型裁剪及图片按比例裁剪的方法_php技巧

本文实例讲述了PHP实现图片不变型裁剪及图片按比例裁剪的方法.分享给大家供大家参考,具体如下: 图片不变型裁剪 <?php /** * imageCropper * @param string $source_path * @param string $target_width * @param string $target_height */ function imageCropper($source_path, $target_width, $target_height){ $source_

php实现的网络相册图片防盗链完美破解方法_php技巧

本文实例讲述了php实现的网络相册图片防盗链完美破解方法.分享给大家供大家参考.具体如下: 网络相册图片防盗链破解程序 - PHP版 这个防盗链破解版可以完美破解当下比较流行的: 百度相册,网易相册,360我喜欢等网站图片. 还可以实现简单的图片防盗链. 因为这个类是先进行获取远程图片, 然后再把图片发送到客户端,所以,算是进行了两次流量的传送.因此,会浪费空间流量,接下来,会开发缓存功能,这样可以实现节约流量! <?php /** * 网络相册图片防盗链破解程序 - PHP版 * * 使用方法

php遍历类中包含的所有元素的方法_php技巧

本文实例讲述了php遍历类中包含的所有元素的方法.分享给大家供大家参考.具体分析如下: 这里可获得php类包含的所有元素以key-value的形式输出 class MyTestClass{ const TESTVAR1 = 1001; const TESTVAR2 = 1002; const TESTSTR1 = 'hello'; } $rc = new ReflectionClass('MyTestClass'); $v = $rc->getConstants(); asort($v);//

php从完整文件路径中分离文件目录和文件名的方法_php技巧

本文实例讲述了php从完整文件路径中分离文件目录和文件名的方法.分享给大家供大家参考.具体分析如下: basename()函数用于从路径中获得文件名 dirname()函数用于从路径中获得文件目录 <?php $full_name = 'c:\wamp\php\php.ini'; $base = basename($full_name); // $base is "php.ini" $dir = dirname($full_name); // $dir is "c:\w

php获取字符串中各个字符出现次数的方法_php技巧

本文实例讲述了php获取字符串中各个字符出现次数的方法.分享给大家供大家参考.具体实现方法如下: <?php //获取字符串是哪一个字符出现的字数最多 $str = "sdfhletlsflahlajgfd;lsje;r;wj;ralajfe149253573"; //方法一 $arr = str_split($str); //字符串分隔到数组中 $arr = array_count_values($arr); //用于统计数组中所有值出现的次数,返回一个数组 //键名为原数组的

php中unserialize返回false的解决方法_php技巧

本文实例讲述了php中unserialize返回false的解决方法,分享给大家供大家参考.具体方法如下: php 提供serialize(序列化) 与unserialize(反序列化)方法. 使用serialize序列化后,再使用unserialize反序列化就可以获取原来的数据. 先来看看如下程序实例: <?php $arr = array( 'name' => 'fdipzone', 'gender' => 'male' ); $str = serialize($arr); //序

PHP批量获取网页中所有固定种子链接的方法_php技巧

本文实例讲述了PHP批量获取网页中所有固定种子链接的方法.分享给大家供大家参考,具体如下: 经常的下载链接比较多的时候,就像一次性将所有的链接添加到迅雷或者电炉,但是没有在这种选项,怎么办,咱是PHPer啊,这事儿难不到咱 且看代码,当然要换成你的,要根据具体情况来做修改. <?php header("content-type:text/html;charset=utf8"); $str = file_get_contents('./ShowFile.asp'); $str1 =