user gets notified interatively or by email in case of a CIS error
[living-lab-site.git] / system / helpers / xml_helper.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 /**
3  * CodeIgniter
4  *
5  * An open source application development framework for PHP 5.1.6 or newer
6  *
7  * @package             CodeIgniter
8  * @author              ExpressionEngine Dev Team
9  * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
10  * @license             http://codeigniter.com/user_guide/license.html
11  * @link                http://codeigniter.com
12  * @since               Version 1.0
13  * @filesource
14  */
15
16 // ------------------------------------------------------------------------
17
18 /**
19  * CodeIgniter XML Helpers
20  *
21  * @package             CodeIgniter
22  * @subpackage  Helpers
23  * @category    Helpers
24  * @author              ExpressionEngine Dev Team
25  * @link                http://codeigniter.com/user_guide/helpers/xml_helper.html
26  */
27
28 // ------------------------------------------------------------------------
29
30 /**
31  * Convert Reserved XML characters to Entities
32  *
33  * @access      public
34  * @param       string
35  * @return      string
36  */
37 if ( ! function_exists('xml_convert'))
38 {
39         function xml_convert($str, $protect_all = FALSE)
40         {
41                 $temp = '__TEMP_AMPERSANDS__';
42
43                 // Replace entities to temporary markers so that
44                 // ampersands won't get messed up
45                 $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str);
46
47                 if ($protect_all === TRUE)
48                 {
49                         $str = preg_replace("/&(\w+);/",  "$temp\\1;", $str);
50                 }
51
52                 $str = str_replace(array("&","<",">","\"", "'", "-"),
53                                                         array("&amp;", "&lt;", "&gt;", "&quot;", "&apos;", "&#45;"),
54                                                         $str);
55
56                 // Decode the temp markers back to entities
57                 $str = preg_replace("/$temp(\d+);/","&#\\1;",$str);
58
59                 if ($protect_all === TRUE)
60                 {
61                         $str = preg_replace("/$temp(\w+);/","&\\1;", $str);
62                 }
63
64                 return $str;
65         }
66 }
67
68 // ------------------------------------------------------------------------
69
70 /* End of file xml_helper.php */
71 /* Location: ./system/helpers/xml_helper.php */