From 0d1cd0ea21364a8aa1672e83ca06d3eb385f9522 Mon Sep 17 00:00:00 2001 From: skodak Date: Sat, 30 Dec 2006 22:45:40 +0000 Subject: [PATCH] MDL-8028 Add separate addslashes_js function for javascript quoting --- lib/weblib.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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 -- 2.39.5