Try:
preg_replace('/(?<=\<)([^>]*)(\w+)=(?<!\'|\")([^>\s]+)(?=\s|\>)([^<]*)(?=\>)/U','\1\2="\3"\4',$html);
Hmm.. that could be a start.. and don't ask me how it works... :P
Well.. problem with that, is that if you got more than 1 un-escaped attribute in a tag, the regex will fix only the first un-escaped attribute.
for example, if $html is:
<p class=MsoNormal id=par><font size=3 face="Comic Sans MS"><span lang=NL
style='font-size:12.0pt;font-family:"Comic Sans MS"'> </span></font></p>
In that case the id=par will remain as is... Does anyone knows how to improve it?
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php