From: stronk7 Date: Tue, 27 Mar 2007 20:31:18 +0000 (+0000) Subject: Now XMLDBStatements support backslashed single quotes. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=86041b7e8482960700e47a734aab250ad1773ab5;p=moodle.git Now XMLDBStatements support backslashed single quotes. Merged from MOODLE_18_STABLE --- diff --git a/lib/xmldb/classes/XMLDBObject.class.php b/lib/xmldb/classes/XMLDBObject.class.php index a365f863bc..10a90b971a 100644 --- a/lib/xmldb/classes/XMLDBObject.class.php +++ b/lib/xmldb/classes/XMLDBObject.class.php @@ -372,8 +372,9 @@ class XMLDBObject { $string = str_replace($foundconcats,array_keys($foundconcats),$string); } - /// Extract all the quoted elements from the string - preg_match_all("/('.*?')/is", $string, $matches); + /// Extract all the quoted elements from the string (skipping + /// backslashed quotes that are part of the content. + preg_match_all("/('.*?[^\\\]')/is", $string, $matches); foreach (array_unique($matches[0]) as $key=>$value) { $foundquotes['<%'.$key.'%>'] = $value; } @@ -397,7 +398,8 @@ class XMLDBObject { if (!empty($foundconcats)) { $element = str_replace(array_keys($foundconcats), $foundconcats, $element); } - $arr[$key] = $element; + /// Delete any backslash used for quotes. XMLDB stuff will add them before insert + $arr[$key] = str_replace("\\'", "'", $element); } }