RegExp для выдергивания INPUT на PHP
Часто на странице есть множество input'ов с уже заполненными значениями. Если их 2-3, то парсинг не утомляет, а вот если это например форма изменения информации в какой-нибудь соц. сети — это быстро надоедает.
Сама RegExpа:
Модификаторы: m (multiline), i (case insensitive).
Использование на PHP:
Сама 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);



10.02.2015, 10:11 -
Категория: Статьи » Программирование » PHP