Php : Get name and value of all input tags on a page with DomDocument

By | August 4, 2012

The following code snippet will extract all input tag names and values as an associative array, from a given html page.

[sourcecode language="php"]
/*
Generic function to fetch all input tags (name and value) on a page
Useful when writing automatic login bots/scrapers
*/
function get_input_tags($html)
{
$post_data = array();

// a new dom object
$dom = new DomDocument;

//load the html into the object
$dom->loadHTML($html);
//discard white space
$dom->preserveWhiteSpace = false;

//all input tags as a list
$input_tags = $dom->getElementsByTagName('input');

//get all rows from the table
for ($i = 0; $i < $input_tags->length; $i++)
{
if( is_object($input_tags->item($i)) )
{
$name = $value = '';
$name_o = $input_tags->item($i)->attributes->getNamedItem('name');
if(is_object($name_o))
{
$name = $name_o->value;

$value_o = $input_tags->item($i)->attributes->getNamedItem('value');
if(is_object($value_o))
{
$value = $input_tags->item($i)->attributes->getNamedItem('value')->value;
}

$post_data[$name] = $value;
}
}
}

return $post_data;
}

/*
Usage
*/

error_reporting(~E_WARNING);
$html = file_get_contents("https://accounts.google.com/ServiceLoginAuth");

echo "<pre>";
print_r(get_input_tags($html));
echo "</pre>";
[/sourcecode]

Last Updated On : 4th August 2012

Related Post






4 thoughts on “Php : Get name and value of all input tags on a page with DomDocument

Leave a Reply

Your email address will not be published. Required fields are marked *