How to extract a value of an HTML input tag using PHP
I know regex isn't popular here, what is the best way to extract a value of an input tag within an HTML form using a php script?
for example:
some divs/tables etc..
<form action="blabla.php" method=post> <input type="text" name="campaign"> <input type="text" name="id" value="this-is-what-i-am-trying-to-ext开发者_JS百科ract"> </form>
some divs/tables etc..
Thanks
If you want to extract some data from some HTML string, the best solution is often to work with the DOMDocument
class, that can load HTML to a DOM Tree.
Then, you can use any DOM-related way of extracting data, like, for example, XPath queries.
Here, you could use something like this :
$html = <<<HTML
<form action="blabla.php" method=post>
<input type="text" name="campaign">
<input type="text" name="id" value="this-is-what-i-am-trying-to-extract">
</form>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//input[@name="id"]');
foreach ($tags as $tag) {
var_dump(trim($tag->getAttribute('value')));
}
And you'd get :
string 'this-is-what-i-am-trying-to-extract' (length=35)
$html=new DOMDocument();
$html->loadHTML('<form action="blabla.php" method=post>
<input type="text" name="campaign">
<input type="text" name="id" value="this-is-what-i-am-trying-to-extract">
</form>');
$els=$html->getelementsbytagname('input');
foreach($els as $inp)
{
$name=$inp->getAttribute('name');
if($name=='id'){
$what_you_are_trying_to_extract=$inp->getAttribute('value');
break;
}
}
echo $what_you_are_trying_to_extract;
//produces: this-is-what-i-am-trying-to-extract
Post the form to a php page. The value you want will be in $_POST['id'].
What do you mean regex isn't popular? I for one love regular expressions.
Anyway, what you want is something like:
$contents = file_get_contents('/path/to/file.html');
preg_match('/value="(\w+)"/',$contents,$result);
精彩评论