本文实例讲述了PHP限制HTML内容中图片必须是本站的方法。分享给大家供大家参考。具体实现方法如下:
1. PHP代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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代码:
1
2
3
4
5
|
< 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. 运行结果:
1
2
3
4
|
[PASS] /image.jpg
[PASS] http://yourdomain.com/image.jpg
[PASS] http://www.yourdomain.com/image.jpg
[FAIL] http://otherdomain.com/image.jpg
|
希望本文所述对大家的php程序设计有所帮助。