curl — PHP Crawler отсутствует хиты и пустые хиты

Я делаю сканер PHP, который сканирует URL для адресов электронной почты. Но почему-то ему не хватает адресов электронной почты, и он возвращает пустые массивы мест.

код:

function curl($url){
$ch = curl_init( );
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$return = curl_exec($ch);
curl_close ($ch);
return $return;
}
if(isset($_POST['go']))
{
if($_POST['url'] != ''){
$data = curl($_POST['url']);
preg_match("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})/i", $data, $matches);
echo "<h1>Handmatig gezocht</h1><hr>";
$tely = count($matches);
for ($y=0; $y<=$tely; $y++)
{
if(!empty($matches[$y]))
{
echo $matches[$y] ."<br>";
}
else
{
echo "Lege array :(<br>";
}
}
echo "<hr>";

}
}

Я сделал простую веб-страницу на своем локальном хосте с 5 электронными письмами

    <p>[email protected]</p>
<p>[email protected]</p>
<p>[email protected]</p>
<p>[email protected]</p>
<p>[email protected]</p>

И массив, который я получаю от моего сканера, выглядит так:

Array ( [0] => [email protected] [1] => [2] => [3] => .nl )

0

Решение

Это происходит потому, что вы используете preg_match (см. документация).
Вы должны использовать preg_match_all вместо.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]