我想要实现的是,当我打开一个网站时,它会通过加载图像、swf 文件、css 文件等来启动网络活动。php 中有什么方法可以将这些资源的列表作为数组获取?
user723867
问问题
73 次
2 回答
3
我认为这(有点)可能的唯一方法是使用 PHP 解析呈现的 HTML 页面并查找资源。– 皮哈
如果你想遵循这个方向,你可以使用file_get_html
$html = file_get_html("http://stackoverflow.com");
$list = array();
foreach ( $html->find("[src=*],link") as $src ) {
isset($src->src) AND $list[] = $src->src ;
isset($src->href) AND $list[] = $src->href ;
}
var_dump($list);
例子
array
0 => string 'http://cdn.sstatic.net/stackoverflow/img/favicon.ico' (length=52)
1 => string 'http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png' (length=61)
2 => string '/opensearch.xml' (length=15)
3 => string 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' (length=63)
4 => string 'http://cdn.sstatic.net/js/stub.js?v=8a629d6e9fb6' (length=48)
5 => string 'http://cdn.sstatic.net/stackoverflow/all.css?v=d16ae3f98d2e' (length=59)
6 => string '/feeds' (length=6)
7 => string 'http://i.stack.imgur.com/NAGkl.png' (length=34)
8 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
9 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
10 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
11 => string 'http://i.stack.imgur.com/L8rHf.png' (length=34)
12 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
13 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
14 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
15 => string 'http://i.stack.imgur.com/6QN0y.png' (length=34)
16 => string 'http://i.stack.imgur.com/L8rHf.png' (length=34)
17 => string 'http://i.stack.imgur.com/L8rHf.png' (length=34)
18 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
19 => string 'http://i.stack.imgur.com/dmHl0.png' (length=34)
20 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34)
21 => string 'http://i.stack.imgur.com/L8rHf.png' (length=34)
22 => string 'http://i.stack.imgur.com/dmHl0.png' (length=34)
23 => string 'http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif' (length=53)
于 2012-11-09T10:55:25.007 回答
0
从 PHP 中找出资源并不是一个好主意,因为您还必须检查外部链接(例如 CSS 包含在任何 CSS 文件中)。在任何情况下都有太多的可能性来处理这个问题。
但是,PeeHaa 是对的,您必须解析每个文件(图像除外)。
于 2012-11-09T10:45:37.327 回答