Как я могу проверить и проверить номер телефона со страницы HTML, используя php?

Я пытаюсь проверить и подтвердить номер телефона со страницы HTML.
Я использую следующий код для проверки номера телефона:

<?php
class Validation {
public $default_filters = array(

'phone' => array(
'regex'=>'/^\(?(\d{3})\)?[-\. ]?(\d{3})[-\. ]?(\d{4})$/',
'message' => 'is not a valid US phone number format.'
)
);
public $filter_list = array();

function Validation($filters=false) {
if(is_array($filters)) {
$this->filters = $filters;
} else {
$this->filters = array();
}
}

function validate($filter,$value) {
if(in_array($filter,$this->filters)) {
if(in_array('default_filter',$this->filters[$filter])) {
$f = $this->default_filters[$this->filters[$filter]['default_filter']];
if(in_array('message',$this->filters[$filter])) {
$f['message'] = $this->filters[$filter]['message'];
}
} else {
$f = $this->filters[$filter];
}
} else {
$f = $this->default_filters[$filter];
}
if(!preg_match($f['regex'],$value)) {
$ret = array();
$ret[$filter] = $f['message'];
return $ret;
}
return true;
}
}

Этот код работает нормально для проверки номера телефона в США. Но я не понимаю, как пройти полную страницу, чтобы извлечь и проверить действующий номер телефона со страницы HTML? Пожалуйста, помогите мне и дайте мне понять, что я могу сделать, чтобы выполнить мое требование.

1

Решение

Ваш класс на самом деле не играет никакой роли в задаче, которую вы хотите выполнить, потому что это всего лишь некоторый общий код проверки, который никогда не был разработан, чтобы стать скребком. Однако ценная его часть (регулярное выражение для определения номера телефона в США) является частью общедоступной собственности, поэтому ее можно повторно использовать несколькими способами (расширить класс или вызвать его из какого-либо другого класса):

public $default_filters = array(
'phone' => array(
'regex'=>'/^\(?(\d{3})\)?[-\. ]?(\d{3})[-\. ]?(\d{4})$/',
'message' => 'is not a valid US phone number format.'
)
);

Например.:

// Scraper is a custom class written by you
$scraper = new Scraper('http://example.com');
$scraper->findByRegularExpression((new Validation())->default_filters['phone']['message']);

Конечно, это предполагает, что вы не можете коснуться кода валидатора.

Я не могу действительно ответить на общий вопрос без написания длинного учебника или самого приложения, но вот небольшой код для начала:

$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTMLFile('http://example.com');
libxml_use_internal_errors(false);
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//text()') as $textNode) {
var_dump($textNode->nodeValue);
}
0

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

Вы хотите посмотреть в завивать.

cURL — это компьютерный программный проект, предоставляющий библиотеку и инструмент командной строки для передачи данных с использованием различных протоколов.

1

Вы должны получить страницу из вашего PHP-скрипта (используйте завивать или что хочешь).

Найдите div / input, содержащий номер телефона, из ответа, который дал вам CURL. Вы можете сделать это с помощью библиотеки, как DOMXPath (Это позволяет вам перемещаться по дереву DOM).

https://secure.php.net/manual/en/class.domxpath.php

Получить значения узла с телефонного входа и передать его в ваш валидатор.

Вот так я бы попробовал.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector