Skip to content

Instantly share code, notes, and snippets.

@Ulv
Created June 27, 2013 16:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ulv/5878201 to your computer and use it in GitHub Desktop.
Save Ulv/5878201 to your computer and use it in GitHub Desktop.
парсит формы html, вынимает input text. input hidden и textarea. Возвращает массив объектов form
/**
* парсит формы в html. Выбирает input[type=text], input[type=hidden] и textarea
*
* @return массив объектов form()
*/
public function extract()
{
$dom = new DOMDocument();
$dom->loadXML(self::$saw->get('form')->toXml());
$xpath = new DOMXPath($dom);
$parsed_forms = array();
$forms = $xpath->query('//form');
foreach($forms as $form) {
if ($form->getAttribute('method')
&& $form->getAttribute('action')) {
$parsed_form = new form($form->getAttribute('action'), $form->getAttribute('method'));
$inputs = $xpath->query('//input[@type="text" or @type="hidden"]', $form);
foreach ($inputs as $input) {
if ($name = $input->getAttribute('name')) {
$parsed_form->addField($input->getAttribute('name'));
}
}
$textareas = $xpath->query('//textarea');
foreach ($textareas as $textarea) {
if ($name = $textarea->getAttribute('name')) {
$parsed_form->addField($textarea->getAttribute('name'));
}
}
$parsed_forms[] = $parsed_form;
unset($parsed_form);
}
}
return $parsed_forms;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment