@@ -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
199199function chars ($ string )
200200{
201- $ string = str_replace ('& ' , '& ' , $ string );
202- $ string = str_replace ('&& ' , '&& ' , $ string );
203- $ string = str_replace (' > ' , ' > ' , $ string );
204- $ string = str_replace (' < ' , ' < ' , $ string );
205- $ string = str_replace ('<< ' , '<< ' , $ string );
206- $ string = str_replace ('>> ' , '>> ' , $ string );
201+ //$string = str_replace('& ', '& ', $string);
202+ //$string = str_replace(' > ', ' > ', $string);
203+ //$string = str_replace(' < ', ' < ', $string);
204+ //$string = str_replace('<<', '<<', $string);
205+ //$string = str_replace('>>', '>>', $string);
206+ $ string = str_replace ('<= ' , '<= ' , $ string );
207+ $ string = preg_replace ("/&(\W)/ " , "&$1 " , $ string );
208+ $ string = str_replace ('&& ' , '&& ' , $ string );
209+ $ string = preg_replace ("/<(!\/\W)/ " , "<$1 " , $ string );
210+ $ string = preg_replace ("/>(!\s\W)/ " , ">$1 " , $ string );
207211 $ string = stripslashes ($ string );
208212 return $ string ;
209213}
0 commit comments