当我们用php调用文件时,将连接的文件列为数组?

时间:2012-11-09 10:41:43

标签: php resources network-protocols

我想要实现的目标,当我打开一个网站时,它通过加载图像,swf文件,css文件等来启动网络活动。在php中是否有任何方法可以将这些资源列表作为数组?

2 个答案:

答案 0 :(得分:3)

  

我认为这种(有点)可能的唯一方法是使用PHP解析呈现的HTML页面并查找资源。 - PeeHaa

如果您想遵循此方向,可以使用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)

答案 1 :(得分:0)

从PHP中找出资源并不是一个好主意,因为您还必须检查外部链接(例如CSS包含在任何CSS文件中)。在任何情况下都有太多的可能性来处理这个问题。

但是,PeeHaa是对的,你必须解析每个文件(图像除外)。