RegExp для выдергивания INPUT на PHP

Часто на странице есть множество input'ов с уже заполненными значениями. Если их 2-3, то парсинг не утомляет, а вот если это например форма изменения информации в какой-нибудь соц. сети — это быстро надоедает.

Сама RegExpа:

<input.*?name=['|"](?<name>.*?)['|"].*?value=['|"](?<value>.*?)['|"].*?>


Модификаторы: m (multiline), i (case insensitive).

Использование на PHP:

preg_match_all('/<input.*?name=[\'|"](?<name>.*?)[\'|"].*?value=[\'|"](?<value>.*?)[\'|"].*?>/im', $page, $matches);
$post = array();
foreach ($matches['name'] as $key => $value) {
	$post[$value] = $matches['value'][$key];
}
// Смотрим POST: print_r($post);
// В случае, если форма не одна - удаляем ненужные инпуты с помощью unset
 
// Модифицируем некоторые значения:
$post['Email'] = $username;
$post['Passwd'] = $password;
$post['timeStmp'] = time();
 
// Формируем RAW POST, если используется cURL, то этого можно не делать
$raw = http_build_query($post);



Просмотров: 1456
10.02.2015, 10:11 -

Категория: Статьи » Программирование » PHP