0

我的任务是从网站列表中提取一些数字。所有这些数字都具有相同的位数,例如 1234567890。

如何使用 PHP 从特定 url 中提取所有具有 10 位数字的数字?

4

2 回答 2

1

将正则表达式与否定前瞻和后视表达式一起使用:

  • (?<!\d)- 不以数字为前缀
  • \d{10}- 10 个号码
  • (?!\d)- 不以数字为后缀

并申请preg_match_all()

$matches = array();
preg_match_all('~(?<!\\d)(\\d){10}(!?\\d)~', $html, $matches);
foreach( $matches[1] as $match){
   var_dump($match);
}
于 2013-09-23T21:35:30.107 回答
1
<?
$sites = array(        
        'http://foo.bar/',        
        'http://blah.baz/'        
);

foreach ($sites as $site) {        
        $ch = curl_init($site);        
        curl_setopt($ch, CURLOPT_HEADER, false);        
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        

        $res = curl_exec($ch);        

        if ($res === false) {        
                echo "Failed to download $site: " . curl_error($ch) . "\n";        
        } else {        
                if (preg_match_all('/\d{10}/', $res, $matches) !== false) {        
                        echo "Found some numbers at $site\n";        
                        foreach ($matches as $match) {        
                                echo "Found number: " . $match[0] . "\n";        
                        }
                }
        }

        curl_close($ch);        
}
?>
于 2013-09-23T21:41:51.900 回答