Skip to content
Browse files

use new function "hotpot_stripslashes()" instead of PHP's "stripslash…

…es()" to remove slashes after preg_replace with "e" modifier, because when MSSQL Server is installed, PHP's "stripslashes()" does not remove slashes, even if the Moodle database is not MSSQL
  • Loading branch information...
1 parent dda3fc5 commit b1b4cdb7d8e5c4336740fa1eeac25414f90c17a2 gbateson committed Sep 30, 2007
Showing with 20 additions and 9 deletions.
  1. +20 −9 mod/hotpot/lib.php
View
29 mod/hotpot/lib.php
@@ -1528,7 +1528,7 @@ function hotpot_xml_quiz(&$obj, $read_file=true, $parse_xml=true, $convert_urls=
// relative URLs in stylesheets
$search = '|'.'(<style[^>]*>)'.'(.*?)'.'(</style>)'.'|ise';
- $replace = "stripslashes('\\1').hotpot_convert_stylesheets_urls('".$this->get_baseurl()."','".$this->reference."','\\2'.'\\3')";
+ $replace = "hotpot_stripslashes('\\1').hotpot_convert_stylesheets_urls('".$this->get_baseurl()."','".$this->reference."','\\2'.'\\3')";
$this->source = preg_replace($search, $replace, $this->source);
// relative URLs in "PreloadImages(...);"
@@ -1783,17 +1783,24 @@ function adjust_media_urls() {
} // end class
+function hotpot_stripslashes($str) {
+ // strip slashes from double quotes, single quotes and back slashes
+ // the slashes were added by preg_replace() when using the "e" modifier
+ static $escapedchars = array('\\\\', '\\"', "\\'");
+ static $unescapedchars = array('\\', '"', "'");
+ return str_replace($escapedchars, $unescapedchars, $str);
+}
function hotpot_convert_stylesheets_urls($baseurl, $reference, $css, $stripslashes=true) {
if ($stripslashes) {
- $css = stripslashes($css);
+ $css = hotpot_stripslashes($css);
}
$search = '|'.'(?<='.'url'.'\('.')'."(.+?)".'(?='.'\)'.')'.'|ise';
$replace = "hotpot_convert_url('".$baseurl."','".$reference."','\\1')";
return preg_replace($search, $replace, $css);
}
function hotpot_convert_preloadimages_urls($baseurl, $reference, $urls, $stripslashes=true) {
if ($stripslashes) {
- $urls = stripslashes($urls);
+ $urls = hotpot_stripslashes($urls);
}
$search = '|(?<=["'."'])([^,'".'"]*?)(?=["'."'])|ise";
$replace = "hotpot_convert_url('".$baseurl."','".$reference."','\\1')";
@@ -1803,7 +1810,7 @@ function hotpot_convert_navbutton_url($baseurl, $reference, $url, $course, $stri
global $CFG;
if ($stripslashes) {
- $url = stripslashes($url);
+ $url = hotpot_stripslashes($url);
}
$url = hotpot_convert_url($baseurl, $reference, $url, false);
@@ -1817,12 +1824,16 @@ function hotpot_convert_navbutton_url($baseurl, $reference, $url, $course, $stri
return $url;
}
-
+function hotpot_stripslashes($str) {
+ static $escapedchars = array('\\\\', '\\"', "\\'");
+ static $unescapedchars = array('\\', '"', "'");
+ return str_replace($escapedchars, $unescapedchars, $str);
+}
function hotpot_convert_relative_url($baseurl, $reference, $opentag, $url, $closetag, $stripslashes=true) {
if ($stripslashes) {
- $opentag = stripslashes($opentag);
- $url = stripslashes($url);
- $closetag = stripslashes($closetag);
+ $opentag = hotpot_stripslashes($opentag);
+ $url = hotpot_stripslashes($url);
+ $closetag = hotpot_stripslashes($closetag);
}
// catch <PARAM name="FlashVars" value="TheSound=soundfile.mp3">
@@ -1867,7 +1878,7 @@ function hotpot_convert_url($baseurl, $reference, $url, $stripslashes=true) {
static $HOTPOT_RELATIVE_URLS = array();
if ($stripslashes) {
- $url = stripslashes($url);
+ $url = hotpot_stripslashes($url);
}
// is this an absolute url? (or javascript pseudo url)

0 comments on commit b1b4cdb

Please sign in to comment.
Something went wrong with that request. Please try again.