-1

可能重复:
获取 A 元素的 href 属性

我想制作一个 php 脚本,从网页(我的)中提取所有 href 链接,但仅在其字符串中使用“/view/”链接。

http://www.example.com/roger/that => 未提取

http://www.example.com/roger/view/that => 提取

如果可能,所有链接都将设置在一个数组中

所以基本上该脚本将在我的管理部分中,我将运行它以获取包含数组中特定字符串“/view/”的所有链接,以便稍后在另一个脚本中使用。

我已经完成了我的研究并找到了这个脚本,但无法修改它以仅包含特定链接(使用“/view/”)

我知道你们不是我的奴隶,所以即使你们有任何修改现有脚本的技巧,我也会很高兴!

我的脚本 http://pastebin.com/gYf9DZ8i

谢谢 !

4

3 回答 3

1

使用file_get_contents获取页面内容。

$input = file_get_contents("http://www.yourpage.php");

然后做一个preg_match来提取你想要的链接集。

正则表达式: /\<a href(.*?\/view\/.*?)<\/a>/

$pattern = '/\<a href(.*?\/view\/.*?)<\/a>/';
preg_match_all($pattern, $input, $matches);
print_r($matches);

于 2012-10-27T16:20:09.397 回答
0
$var = file_get_contents("http://www.entendu.info");

preg_match_all ("/<a\s+[^>]*?\bhref\s*=\s*([\'\"])(?=[^\'\"]*\/view\/)(.*?)[\'\"]/", 
  $var, &$matches);    

$matches = $matches[2];

foreach($matches as $var)
{    
  print($var . "<br>\n");
}
于 2012-10-27T16:38:24.440 回答
0

你只需要改变这个:

preg_match_all ("/a[\s]+[^>]*?href[\s]?=[\s\"\']+".
                "(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",
                $var, &$matches);

进入这个

preg_match_all ("/<a.*href=\"([^\"]*\/view\/[^"]*)\"/", $var, &$matches);
于 2012-10-27T16:26:50.470 回答