функция preg_match и preg_match_all ищет по регулярке в строке и сохраняет найденное в массив. Например, так
for($i=1; $i<=5; $i++){
$page = file_get_contents('http://domen.com/?page=' . $i);
preg_match_all('@<a href="(.*?)"@si', $page, $urls);
foreach($urls[1] as $url){
echo $url . PHP_EOL;
}
}
Массив $urls будет ли перезаписываться с нуля на каждой итерации цикла, либо же preg_match_all будет добавлять данные в массив?