Wypakuj pola formularza za pomocą RegEx
Szukam sposobu, aby uzyskać wszystkie dane wejściowe formularza i odpowiednie wartości ze strony o określonym adresie URL i nazwie formularza.
function GetForm($url, $name)
{
return array
(
'field_name_1' => 'value_1',
'field_name_2' => 'value_2',
'select_field_name' => array('option_1', 'option_2', 'option_3'),
);
}
GetForm('http://www.google.com/', 'f');
Czy ktoś może dostarczyć mi niezbędnych wyrażeń regularnych, aby to osiągnąć?
EDYTOWAĆ: Rozumiem, że wysyłanie zapytań do DOM byłoby o wiele bardziej niezawodne, ale tego, czego szukam, jest rozwiązanie agnostyczne na stronie, które pozwala mi uzyskać wszystkie pola w danym formularzu. Nie wierzę, że jest to możliwe w DOM, nie znając najpierw węzłów dokumentu, czy się mylę?
Nie potrzebuję rozwiązania kuloodpornego, tylko coś, co działa na standardowych stronach internetowych, dla tagu FORM wymyśliłem następujący RegEx;
'~<form.*?name=[\'"]?' . $name . '[\'"]?.*?>(.+?)</form>~is'
Uważam, że robienie czegoś podobnego w przypadku pól wejściowych nie będzie trudne, a największym wyzwaniem jest regEx dla pól wyboru i opcji.