Мне нужен способ извлечения всей информации о форме на веб-странице с помощью сценария PHP.поэтому у меня есть:
$ url = "http://somewebpage.com/";
мне нужна информация:
Список всех форм на веб-странице и их параметры / атрибутыкак:
Пример вывода будет выглядеть следующим образом:
Форма 1: Имя формы: «login», действие: «login.php», метод: «GET»
- Тип ввода: «текст», имя: «usrname»
- Тип ввода: «пароль», имя: «pass»
Форма 2: Имя формы: «login2», действие:"login2.php", метод: "POST"
- Тип ввода: "текст", имя: "usr"
- Тип ввода: "пароль", имя: "pwd"
Я использую следующий метод для помещения HTML-содержимого веб-страницы в переменную:
// cURL
$browser_id = "some crazy browser";
$curl_handle = curl_init();
$options = array
(
CURLOPT_URL=>$url,
CURLOPT_HEADER=>true,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_USERAGENT=>$browser_id
);
curl_setopt_array($curl_handle,$options);
$server_output = curl_exec($curl_handle);
curl_close($curl_handle);
Затем я использую это для удаления информации заголовка ипросто сохраняйте HTML-код, иначе DOM всегда выдаст мне ошибки.
$server_output2 = substr($server_output, stripos($server_output, "<html"));
Для поиска форм я использую DOM
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->loadHTML($server_output2);
$params = $dom->getElementsByTagName('form'); // Find Sections
$k=0;
foreach ($params as $param){
$forms[$k][0] = $params->item($k)->getAttribute('name');
$forms[$k][1] = $params->item($k)->getAttribute('action');
$forms[$k][2] = $params->item($k)->getAttribute('method');
$k++;
}
Однако моя проблема в том, что я часто получаю ошибкииз DOM, о закрытых тегах или другой информации. И я не хочу получатьт эту информацию.Как я могу заставить это работать?Также мой текущий код, только выводит информацию о форме, а не входные данные в форме, которую я тоже хочу знать.Как я могу сделать эту работу?Спасибо за помощь.Вы можете посмотреть мой проект «Вектор удаленной атаки» (для этого он мне нужен) по адресу http://sourceforge.net/projects/rav/files/ или проверить мой сайт: http://tamasiweb.hu