1

我正在修改一个脚本以从一长页文本中输出一个字符串,这就像一个魅力,唯一的问题是第二组只会输出数字。

<?php
$file = file_get_contents('page.htm'); 
preg_match_all('#<a.*?href="(?:http://)www.site.com/profiles/(?P<id>\d+)[^‌​&gt;]+#msi',$file, $matches); 
$f = fopen("file.txt", "w");
print_r($matches['id']);
fwrite($f, print_r($matches['id'], true));
fclose($f); 

echo "<br><br>";

preg_match_all('#<a.*?href="(?:http://)www.site.com/id/(?P<id2>\d+)[^‌​&gt;]+#msi',$file, $matches2); 
$f = fopen("file.txt", "w");
print_r($matches2['id2']);
fwrite($f, print_r($matches2['id2'], true));
fclose($f); 
?>

顶部的应该这样做,但底部的需要允许所有字符,包括特殊字符,是否缺少某些内容或我需要添加的内容?万分感谢!

4

1 回答 1

1

嗯,想通了。

改变

'#<a.*?href="(?:http://)www.tf2items.com/id/(?P<id2>\w+)[^‌​&gt;]+#msi'

'#<a.*?href="(?:http://)www.tf2items.com/id/(?P<id2>\d+)[^‌​&gt;]+#msi'

显然 \w 只是字母 (wtf) 而 \d 就是一切

于 2013-04-24T19:36:42.783 回答