对标记属性中的特定字符进行编码


Encode specific characters within tag attributes

使用PHP,我想在任何标记的属性值中编码特定字符(><字符)。

例如,<input type="text" data-name="Oliver<>Nassar">将变为<input type="text" data-name="Oliver&lt;&gt;Nassar">

我对属性名称并不挑剔(例如data-namevalue属性名称)。虽然我很乐意在属性值(例如<input data-name="...">)之前假设一个空白字符('s),但如果这不是一个条件,那就太好了,这样我就可以满足<input type="text"data-name="Oliver<>Nassar"> 这样的情况

我想PHPs preg_replace_callback会被使用,但就实际表达而言,我可以在那里得到一些帮助。

这是我想出的表达式:

'/' .
    '(' .
        ''s{1}' .
        '[a-z'-]+' .
        ''s?' .
        '=' .
        ''s?' .
        '(' .
            '[''|"]{1}' .
        ')' .
    ')' .
    '([^'2]*)' .
    ''2' .
'/iU',

希望这对其他人有帮助。