Search code examples
phphtmlregexphp4

Regex for html attributes in php


I am trying to parse a string of HTML tag attributes in php. There can be 3 cases:

attribute="value"  //inside the quotes there can be everything also other escaped quotes
attribute          //without the value
attribute=value    //without quotes so there are only alphanumeric characters

can someone help me to find a regex that can get in the first match the attribute name and in the second the attribute value (if it's present)?


Solution

  • Give this a try and see if it is what you want to extract from the tags.

    preg_match_all('/( \\w{1,}="\\w{1,}"| \\w{1,}=\\w{1,}| \\w{1,})/i', 
        $content, 
        $result, 
        PREG_PATTERN_ORDER);
    $result = $result[0];
    

    The regex pulls each attribute, excludes the tag name, and puts the results in an array so you will be able to loop over the first and second attributes.