Skip to content

@rodneyrehm /extract-attributes.php
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
extracting attributs from <element attr="value" attr2=val attr3='val'>
<?php
// extracting attributes
// http://stackoverflow.com/questions/7776469/preg-match-with-name-being-last-in-input
$expected = array(
'value' => 'joe',
'type' => 'hidden',
'name' => 'firstname',
);
$sources = array(
'<input value="joe" type="hidden" name="firstname">',
'<input value="joe" name="firstname" type="hidden">',
'<input name="firstname" type="hidden" value="joe">',
'<input name=firstname type="hidden" value=\'joe\'>',
);
// http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
$pattern = "/\s+(?<name>[a-z0-9-]+)=(((?<quotes>['\"])(?<value>.*?)\k<quotes>)|(?<value2>[^'\" ]+))/i";
foreach ($sources as $source) {
$result = array();
preg_match_all($pattern, $source, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
$result[$match['name']] = $match['value'] ?: $match['value2'];
}
var_dump($source, $result == $expected);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.