From: skodak Date: Sat, 30 Dec 2006 22:45:40 +0000 (+0000) Subject: MDL-8028 Add separate addslashes_js function for javascript quoting X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=0d1cd0ea21364a8aa1672e83ca06d3eb385f9522;p=moodle.git MDL-8028 Add separate addslashes_js function for javascript quoting --- diff --git a/lib/weblib.php b/lib/weblib.php index 972ec7f392..1c7c60b5b7 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -135,6 +135,28 @@ function p($var, $strip=false) { echo s($var, $strip); } +/** + * Does proper javascript quoting. + * Do not use addslashes anymore, because it does not work when magic_quotes_sybase is enabled. + * + * @param mixed value + * @return mixed quoted result + */ +function addslashes_js($var) { + if (is_string($var)) { + $var = str_replace('\\', '\\\\', $var); + $var = str_replace(array('\'', '"', "\n", "\r", "\0"), array('\\\'', '\\"', '\\n', '\\r', '\\0'), $var); + } else if (is_array($var)) { + $var = array_map('addslashes_js', $var); + } else if (is_object($var)) { + $a = get_object_vars($var); + foreach ($a as $key=>$value) { + $a[$key] = addslashes_js($value); + } + $var = (object)$a; + } + return $var; +} /** * Remove query string from url