我想创建一个PHP脚本,从网页(我的)中提取所有href链接,但只在其字符串中链接“/ view /”。
http://www.example.com/roger/that =>未提取
http://www.example.com/roger/view/that =>提取
如果可能的话,所有链接都将在数组中设置
所以基本上脚本将在我的管理部分中,我会运行它来获取包含数组中特定字符串'/ view /'的所有链接,以便稍后在另一个脚本中使用。
我已经完成了我的研究并发现了这个脚本,但无法将其修改为仅包含特定链接(使用“/ view /”)
我知道你们不是我的奴隶,所以即使你有修改现有剧本的任何提示,我也会很高兴!
我的剧本 http://pastebin.com/gYf9DZ8i
谢谢!
答案 0 :(得分: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);
(的 Example 强>)
答案 1 :(得分:0)
你只需要改变这个:
preg_match_all ("/a[\s]+[^>]*?href[\s]?=[\s\"\']+".
"(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",
$var, &$matches);
进入这个
preg_match_all ("/<a.*href=\"([^\"]*\/view\/[^"]*)\"/", $var, &$matches);
答案 2 :(得分: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");
}