summaryrefslogtreecommitdiffstats
path: root/system/helpers/xml_helper.php
diff options
context:
space:
mode:
Diffstat (limited to 'system/helpers/xml_helper.php')
-rwxr-xr-x[-rw-r--r--]system/helpers/xml_helper.php33
1 files changed, 21 insertions, 12 deletions
diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php
index 712f6777e..cdd81ad70 100644..100755
--- a/system/helpers/xml_helper.php
+++ b/system/helpers/xml_helper.php
@@ -2,11 +2,11 @@
/**
* CodeIgniter
*
- * An open source application development framework for PHP 4.3.2 or newer
+ * An open source application development framework for PHP 5.1.6 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
- * @copyright Copyright (c) 2008 - 2010, EllisLab, Inc.
+ * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
* @license http://codeigniter.com/user_guide/license.html
* @link http://codeigniter.com
* @since Version 1.0
@@ -33,30 +33,39 @@
* @access public
* @param string
* @return string
- */
+ */
if ( ! function_exists('xml_convert'))
{
- function xml_convert($str)
+ function xml_convert($str, $protect_all = FALSE)
{
$temp = '__TEMP_AMPERSANDS__';
- // Replace entities to temporary markers so that
+ // Replace entities to temporary markers so that
// ampersands won't get messed up
$str = preg_replace("/&#(\d+);/", "$temp\\1;", $str);
- $str = preg_replace("/&(\w+);/", "$temp\\1;", $str);
-
+
+ if ($protect_all === TRUE)
+ {
+ $str = preg_replace("/&(\w+);/", "$temp\\1;", $str);
+ }
+
$str = str_replace(array("&","<",">","\"", "'", "-"),
- array("&amp;", "&lt;", "&gt;", "&quot;", "&#39;", "&#45;"),
- $str);
+ array("&amp;", "&lt;", "&gt;", "&quot;", "&apos;", "&#45;"),
+ $str);
- // Decode the temp markers back to entities
+ // Decode the temp markers back to entities
$str = preg_replace("/$temp(\d+);/","&#\\1;",$str);
- $str = preg_replace("/$temp(\w+);/","&\\1;", $str);
-
+
+ if ($protect_all === TRUE)
+ {
+ $str = preg_replace("/$temp(\w+);/","&\\1;", $str);
+ }
+
return $str;
}
}
+// ------------------------------------------------------------------------
/* End of file xml_helper.php */
/* Location: ./system/helpers/xml_helper.php */ \ No newline at end of file