Skip to content

Commit d41a043

Browse files
committed
fixed && escape problem
1 parent 64b8c01 commit d41a043

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

generate/lib/functions.inc.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ function innerHTML(&$xml, $nodeName)
8585
// replace invalid <c> with <kbd>
8686
$string = str_replace(array('<c>', '</c>'), array('<kbd>', '</kbd>'), $matches[1]);
8787
if (substr($string, 0, 1) == "\n") { $string = substr($string, 1); }
88-
return chars(trim($string));
88+
return trim(chars($string));
8989
} else {
9090
return false;
9191
}
@@ -198,12 +198,16 @@ function convertToFilename($string, $translation = false)
198198

199199
function chars($string)
200200
{
201-
$string = str_replace('& ', '&amp; ', $string);
202-
$string = str_replace('&&', '&amp;&amp;', $string);
203-
$string = str_replace(' > ', ' &gt; ', $string);
204-
$string = str_replace(' < ', ' &lt; ', $string);
205-
$string = str_replace('<<', '&lt;&lt;', $string);
206-
$string = str_replace('>>', '&gt;&gt;', $string);
201+
//$string = str_replace('& ', '&amp; ', $string);
202+
//$string = str_replace(' > ', ' &gt; ', $string);
203+
//$string = str_replace(' < ', ' &lt; ', $string);
204+
//$string = str_replace('<<', '&lt;&lt;', $string);
205+
//$string = str_replace('>>', '&gt;&gt;', $string);
206+
$string = str_replace('<=', '&lt;=', $string);
207+
$string = preg_replace("/&(\W)/", "&amp;$1", $string);
208+
$string = str_replace('&amp;&', '&amp;&amp;', $string);
209+
$string = preg_replace("/<(!\/\W)/", "&lt;$1", $string);
210+
$string = preg_replace("/>(!\s\W)/", "&gt;$1", $string);
207211
$string = stripslashes($string);
208212
return $string;
209213
}

0 commit comments

Comments
 (0)