我在PHP脚本中使用正则表达式来检查Rapidshare链接的页面,并将它们加载到数组中。
我的代码:
if(preg_match_all('/http:\/\/rapidshare\.com\/files\/.*?\/[^\s]+/', $links[0], $links))
{
print_r($links);
} else {
die('Cannot find post links :(');
}
它正确找到链接,并将它们放入数组中:
Array
(
[0] => Array
(
[0] => http://rapidshare.com/files/320708377/file_name1.rar
[1] => http://rapidshare.com/files/320708377/file_name1.rar
[2] => http://rapidshare.com/files/333708133/file_name2.rar
[3] => http://rapidshare.com/files/333708133/file_name2.rar
[4] => http://rapidshare.com/files/330738827/file_name3.rar
[5] => http://rapidshare.com/files/330738827/file_name3.rar
)
)
正如您所看到的,它为每个链接输入了两个链接到数组中。我不知道为什么会这样做,但我怀疑它与正则表达式有关。
有任何帮助吗?干杯。 :)
答案 0 :(得分:1)
仅供记录:
$array = array_unique($values);
虽然它不适用于多维数组..所以你必须通过第一个数组for each
。
答案 1 :(得分:1)
preg_match_all
()不会神奇地复制网址,它们必须每次发生2次。你在一串HTML上使用正则表达式?我怀疑,如果有<a>
标记,您同时捕获href
和实际链接文字:
<a href="http://www.example.com">http://www.example.com</a>
答案 2 :(得分:0)
sigh 发生了,因为它是一个超链接,它抓取它加载的URL和链接文本。
答案 3 :(得分:0)