source: sourcecode/system/helpers/xml_helper.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 1.7 KB
Line 
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 */
37if ( ! 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 */
Note: See TracBrowser for help on using the repository browser.