blob: 856722b322c19c74dfd9aec550063b22f3b3782d [file] [log] [blame]
adminb0dd10f2006-08-25 17:25:49 +00001<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * Code Igniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
8 * @author Rick Ellis
9 * @copyright Copyright (c) 2006, pMachine, Inc.
admine334c472006-10-21 19:44:22 +000010 * @license http://www.codeignitor.com/user_guide/license.html
adminb0dd10f2006-08-25 17:25:49 +000011 * @link http://www.codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
admine334c472006-10-21 19:44:22 +000015
adminb0dd10f2006-08-25 17:25:49 +000016// ------------------------------------------------------------------------
17
18/**
19 * Code Igniter XML Helpers
20 *
21 * @package CodeIgniter
22 * @subpackage Helpers
23 * @category Helpers
24 * @author Rick Ellis
25 * @link http://www.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 */
37function xml_convert($str)
38{
admin7acd5812006-10-23 21:37:22 +000039 $temp = '__TEMP_AMPERSANDS__';
40
41 // Replace entities to temporary markers so that
42 // ampersands won't get messed up
adminb0dd10f2006-08-25 17:25:49 +000043 $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str);
44 $str = preg_replace("/&(\w+);/", "$temp\\1;", $str);
45
46 $str = str_replace(array("&","<",">","\"", "'", "-"),
47 array("&amp;", "&lt;", "&gt;", "&quot;", "&#39;", "&#45;"),
48 $str);
admin7acd5812006-10-23 21:37:22 +000049
50 // Decode the temp markers back to entities
adminb0dd10f2006-08-25 17:25:49 +000051 $str = preg_replace("/$temp(\d+);/","&#\\1;",$str);
52 $str = preg_replace("/$temp(\w+);/","&\\1;", $str);
53
54 return $str;
admine334c472006-10-21 19:44:22 +000055}
adminb0dd10f2006-08-25 17:25:49 +000056
57
58?>