|
Posted by Schraalhans Keukenmeester on 05/28/07 08:29
At Mon, 28 May 2007 08:18:14 +0200, amygdala let h(is|er) monkeys type:
> Hi there,
>
> I'm trying to replace single quoted attributes in HTML tags with double
> quotes. What I've come up with is this:
>
> function replaceSingleQuotesInsideTags( $input )
> {
> $output = preg_replace(
> '/<[^>]*>/e',
> "str_replace( '\'', '\"', '$0' )",
> $input
> );
> return $output;
> }
>
> So let's say I have this string of HTML code:
>
> On <A href="/home/" target="_self">this</A> page you will find <SPAN
> STYLE='font-style: italic'>stuff</SPAN>
>
> Result:
> On <A href=\"/home/\" target=\"_self\">this</A> page you will find <SPAN
> STYLE="font-style: italic">stuff</SPAN>
>
Quoted verbatim from the preg_replace manual section:
When using the e modifier, this function escapes some characters
(namely ', ", \ and NULL) in the strings that replace the
backreferences. This is done to ensure that no syntax errors arise
from backreference usage with either single or double quotes (e.g.
'strlen(\'$1\')+strlen("$2")'). Make sure you are aware of PHP's
string syntax to know exactly how the interpreted string will look
like.
Seems a stripslashes to finish up is what you need.
Regards,
--
Schraalhans Keukenmeester - schraalhans@the.spamtrapexample.nl
[Remove the lowercase part of Spamtrap to send me a message]
"strcmp('apples','oranges') is -1"
Navigation:
[Reply to this message]
|