Pregmatch Ищет номера телефонов и адреса в Великобритании и ищет только тег Body - PullRequest
0 голосов
/ 25 сентября 2019

Я строю скребок, используя Simple HTML Dom.Я получил его для работы с электронными письмами, которые не являются проблемой, хотя мне нужно разобраться, как сделать так, чтобы он только просматривал электронные письма и номера внутри тега body.Хотя главная проблема, с которой я сталкиваюсь, - это найти номера телефонов с помощью Regex, я пробовал много комбинаций, таких как /^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$/, и он находит номер телефона в некоторых, но не во всех, но в большинстве случаев не находит никаких номеров.или находит числа внутри URL.

В чем мне нужна помощь: -

  • Получение Simple-HTML-DOM только для поиска вещей внутри тега body.
  • Получение регулярных выражений для поиска телефонных номеров

Я перепробовал множество вариантов RegEx и проверил руководства

        $website = "https://www.altech-uk.com/contact-us/index.htm";

        $context = stream_context_create(
                array(
                'http' => array(

                    'follow_location' => false

                )
            )
        ); 

        $html = file_get_contents("$website", false, $context);  
        $regp = '/^(1?(-?\d{3})-?)?(\d{3})(-?\d{4})$/';
        preg_match_all($regp, $html, $phonematch, PREG_SET_ORDER, 0); 
        $P = 0;
        foreach($phonematch as $resultp) {  

            echo $resultp[$P]; 
            $P++;

        } 

        $html->clear();
        unset($html);

В нем нет ни номера телефона, ни неправильных номеров извнетег body и все найденные мною решения не работают, так как используются только для американских чисел.

...