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

时间:2013-02-20 05:25:09

标签: php regex

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

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

我对属性名称(例如data-namevalue属性名称)并不挑剔。虽然我很乐意在属性值(例如\s)之前假定一个空格字符(<input data-name="...">),但如果这不是一个条件就会很好,这样我就可以遇到{{<input type="text"data-name="Oliver<>Nassar">之类的情况。 1}}

我认为PHP preg_replace_callback将被使用,但就实际表达而言,我可以在那里使用一些帮助。

1 个答案:

答案 0 :(得分:0)

这是我提出的表达方式:

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

希望这对其他人有帮助。