0

Web サイトのリストからいくつかの数字を抽出するタスクがあります。これらの数字はすべて、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 に答える