wp/wp-includes/atomlib.php
author ymh <ymh.work@gmail.com>
Fri, 05 Sep 2025 18:52:52 +0200
changeset 22 8c2e4d02f4ef
parent 19 3d72ae0968f4
permissions -rw-r--r--
Update WordPress to latest version (6.7) - Sync WordPress core files from latest release - Updated admin interface, blocks, and core functionality - Enhanced block editor features and performance - Security updates and bug fixes - Preserved custom wp-content directory and configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * Atom Syndication Format PHP Library
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * @package AtomLib
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * @link http://code.google.com/p/phpatomlib/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * @author Elias Torres <elias@torrez.us>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * @version 0.4
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    10
 * @since 2.3.0
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
 * Structure that store common Atom Feed Properties
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
 * @package AtomLib
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
class AtomFeed {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
	 * Stores Links
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
	 * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    var $links = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
     * Stores Categories
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
     * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
     * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    var $categories = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
	 * Stores Entries
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
	 * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    var $entries = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
 * Structure that store Atom Entry Properties
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
 * @package AtomLib
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
class AtomEntry {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
	 * Stores Links
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
	 * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
	 * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    var $links = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
     * Stores Categories
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
     * @var array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	 * @access public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    var $categories = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
 * AtomLib Atom Parser API
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
 * @package AtomLib
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
class AtomParser {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    var $NS = 'http://www.w3.org/2005/Atom';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    var $ATOM_CONTENT_ELEMENTS = array('content','summary','title','subtitle','rights');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    var $ATOM_SIMPLE_ELEMENTS = array('id','updated','published','draft');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    var $debug = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    var $depth = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    var $indent = 2;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    var $in_content;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
    var $ns_contexts = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    var $ns_decls = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    var $content_ns_decls = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    var $content_ns_contexts = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
    var $is_xhtml = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    var $is_html = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    var $is_text = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
    var $skipped_div = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
    var $FILE = "php://input";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
    var $feed;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
    var $current;
22
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    89
    var $map_attrs_func;
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    90
    var $map_xmlns_func;
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    91
    var $error;
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
    92
    var $content;
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    94
	/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    95
	 * PHP5 constructor.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    96
	 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    97
    function __construct() {
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
        $this->feed = new AtomFeed();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
        $this->current = null;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   101
        $this->map_attrs_func = array( __CLASS__, 'map_attrs' );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   102
        $this->map_xmlns_func = array( __CLASS__, 'map_xmlns' );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   105
	/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   106
	 * PHP4 constructor.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   107
	 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   108
	public function AtomParser() {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   109
		self::__construct();
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   110
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   111
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   112
	/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   113
	 * Map attributes to key="val"
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   114
	 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   115
	 * @param string $k Key
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   116
	 * @param string $v Value
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   117
	 * @return string
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   118
	 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   119
	public static function map_attrs($k, $v) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   120
		return "$k=\"$v\"";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   121
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   122
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   123
	/**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   124
	 * Map XML namespace to string.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   125
	 *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   126
	 * @param indexish $p XML Namespace element index
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   127
	 * @param array $n Two-element array pair. [ 0 => {namespace}, 1 => {url} ]
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   128
	 * @return string 'xmlns="{url}"' or 'xmlns:{namespace}="{url}"'
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   129
	 */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   130
	public static function map_xmlns($p, $n) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   131
		$xd = "xmlns";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   132
		if( 0 < strlen($n[0]) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   133
			$xd .= ":{$n[0]}";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   134
		}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   135
		return "{$xd}=\"{$n[1]}\"";
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   136
	}
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   137
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
    function _p($msg) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
        if($this->debug) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
            print str_repeat(" ", $this->depth * $this->indent) . $msg ."\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
    function error_handler($log_level, $log_text, $error_file, $error_line) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
        $this->error = $log_text;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
    function parse() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        set_error_handler(array(&$this, 'error_handler'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
        array_unshift($this->ns_contexts, array());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   154
        if ( ! function_exists( 'xml_parser_create_ns' ) ) {
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   155
        	trigger_error( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   156
        	return false;
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   157
        }
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   158
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
        $parser = xml_parser_create_ns();
22
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
   160
        xml_set_element_handler($parser, array($this, "start_element"), array($this, "end_element"));
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
        xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
        xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,0);
22
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
   163
        xml_set_character_data_handler($parser, array($this, "cdata"));
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
   164
        xml_set_default_handler($parser, array($this, "_default"));
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
   165
        xml_set_start_namespace_decl_handler($parser, array($this, "start_ns"));
8c2e4d02f4ef Update WordPress to latest version (6.7)
ymh <ymh.work@gmail.com>
parents: 19
diff changeset
   166
        xml_set_end_namespace_decl_handler($parser, array($this, "end_ns"));
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
        $this->content = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
        $ret = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
        $fp = fopen($this->FILE, "r");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
        while ($data = fread($fp, 4096)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
            if($this->debug) $this->content .= $data;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
            if(!xml_parse($parser, $data, feof($fp))) {
16
a86126ab1dd4 update enmi-conf
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
   177
                /* translators: 1: Error message, 2: Line number. */
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   178
                trigger_error(sprintf(__('XML Error: %1$s at line %2$s')."\n",
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
                    xml_error_string(xml_get_error_code($parser)),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
                    xml_get_current_line_number($parser)));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
                $ret = false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
        fclose($fp);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        xml_parser_free($parser);
16
a86126ab1dd4 update enmi-conf
ymh <ymh.work@gmail.com>
parents: 7
diff changeset
   188
        unset($parser);
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
        restore_error_handler();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
        return $ret;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
    function start_element($parser, $name, $attrs) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
18
be944660c56a Site enmi version 09/2022
ymh <ymh.work@gmail.com>
parents: 16
diff changeset
   197
        $name_parts = explode(":", $name);
be944660c56a Site enmi version 09/2022
ymh <ymh.work@gmail.com>
parents: 16
diff changeset
   198
        $tag        = array_pop($name_parts);
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
        switch($name) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
            case $this->NS . ':feed':
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                $this->current = $this->feed;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
            case $this->NS . ':entry':
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
                $this->current = new AtomEntry();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
                break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
        };
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
        $this->_p("start_element('$name')");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
        #$this->_p(print_r($this->ns_contexts,true));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
        #$this->_p('current(' . $this->current . ')');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
        array_unshift($this->ns_contexts, $this->ns_decls);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
        $this->depth++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
        if(!empty($this->in_content)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
            $this->content_ns_decls = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
            if($this->is_html || $this->is_text)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
                trigger_error("Invalid content in element found. Content must not be of type text or html if it contains markup.");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
            $attrs_prefix = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
            // resolve prefixes for attributes
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
            foreach($attrs as $key => $value) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
                $with_prefix = $this->ns_to_prefix($key, true);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
                $attrs_prefix[$with_prefix[1]] = $this->xml_escape($value);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
            $attrs_str = join(' ', array_map($this->map_attrs_func, array_keys($attrs_prefix), array_values($attrs_prefix)));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
            if(strlen($attrs_str) > 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
                $attrs_str = " " . $attrs_str;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
            $with_prefix = $this->ns_to_prefix($name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
            if(!$this->is_declared_content_ns($with_prefix[0])) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
                array_push($this->content_ns_decls, $with_prefix[0]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
            $xmlns_str = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
            if(count($this->content_ns_decls) > 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
                array_unshift($this->content_ns_contexts, $this->content_ns_decls);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
                $xmlns_str .= join(' ', array_map($this->map_xmlns_func, array_keys($this->content_ns_contexts[0]), array_values($this->content_ns_contexts[0])));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
                if(strlen($xmlns_str) > 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
                    $xmlns_str = " " . $xmlns_str;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
            array_push($this->in_content, array($tag, $this->depth, "<". $with_prefix[1] ."{$xmlns_str}{$attrs_str}" . ">"));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
        } else if(in_array($tag, $this->ATOM_CONTENT_ELEMENTS) || in_array($tag, $this->ATOM_SIMPLE_ELEMENTS)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
            $this->in_content = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
            $this->is_xhtml = $attrs['type'] == 'xhtml';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
            $this->is_html = $attrs['type'] == 'html' || $attrs['type'] == 'text/html';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
            $this->is_text = !in_array('type',array_keys($attrs)) || $attrs['type'] == 'text';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
            $type = $this->is_xhtml ? 'XHTML' : ($this->is_html ? 'HTML' : ($this->is_text ? 'TEXT' : $attrs['type']));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
            if(in_array('src',array_keys($attrs))) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
                $this->current->$tag = $attrs;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
            } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
                array_push($this->in_content, array($tag,$this->depth, $type));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
        } else if($tag == 'link') {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
            array_push($this->current->links, $attrs);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
        } else if($tag == 'category') {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
            array_push($this->current->categories, $attrs);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
        $this->ns_decls = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
    function end_element($parser, $name) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
18
be944660c56a Site enmi version 09/2022
ymh <ymh.work@gmail.com>
parents: 16
diff changeset
   277
        $name_parts = explode(":", $name);
be944660c56a Site enmi version 09/2022
ymh <ymh.work@gmail.com>
parents: 16
diff changeset
   278
        $tag        = array_pop($name_parts);
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
        $ccount = count($this->in_content);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
        # if we are *in* content, then let's proceed to serialize it
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
        if(!empty($this->in_content)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
            # if we are ending the original content element
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
            # then let's finalize the content
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
            if($this->in_content[0][0] == $tag &&
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
                $this->in_content[0][1] == $this->depth) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
                $origtype = $this->in_content[0][2];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
                array_shift($this->in_content);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
                $newcontent = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
                foreach($this->in_content as $c) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
                    if(count($c) == 3) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
                        array_push($newcontent, $c[2]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
                    } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
                        if($this->is_xhtml || $this->is_text) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
                            array_push($newcontent, $this->xml_escape($c));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
                        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
                            array_push($newcontent, $c);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
                        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
                if(in_array($tag, $this->ATOM_CONTENT_ELEMENTS)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
                    $this->current->$tag = array($origtype, join('',$newcontent));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
                } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
                    $this->current->$tag = join('',$newcontent);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
                $this->in_content = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
            } else if($this->in_content[$ccount-1][0] == $tag &&
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
                $this->in_content[$ccount-1][1] == $this->depth) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
                $this->in_content[$ccount-1][2] = substr($this->in_content[$ccount-1][2],0,-1) . "/>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
            } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
                # else, just finalize the current element's content
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
                $endtag = $this->ns_to_prefix($name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
                array_push($this->in_content, array($tag, $this->depth, "</$endtag[1]>"));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
        array_shift($this->ns_contexts);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
        $this->depth--;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
        if($name == ($this->NS . ':entry')) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
            array_push($this->feed->entries, $this->current);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
            $this->current = null;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
        $this->_p("end_element('$name')");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
    function start_ns($parser, $prefix, $uri) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
        $this->_p("starting: " . $prefix . ":" . $uri);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
        array_push($this->ns_decls, array($prefix,$uri));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
    function end_ns($parser, $prefix) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
        $this->_p("ending: #" . $prefix . "#");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
    function cdata($parser, $data) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
        $this->_p("data: #" . str_replace(array("\n"), array("\\n"), trim($data)) . "#");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
        if(!empty($this->in_content)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
            array_push($this->in_content, $data);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
    function _default($parser, $data) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
        # when does this gets called?
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
    function ns_to_prefix($qname, $attr=false) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
        # split 'http://www.w3.org/1999/xhtml:div' into ('http','//www.w3.org/1999/xhtml','div')
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   353
        $components = explode(":", $qname);
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
        # grab the last one (e.g 'div')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
        $name = array_pop($components);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
        if(!empty($components)) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
            # re-join back the namespace component
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
            $ns = join(":",$components);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
            foreach($this->ns_contexts as $context) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
                foreach($context as $mapping) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
                    if($mapping[1] == $ns && strlen($mapping[0]) > 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
                        return array($mapping, "$mapping[0]:$name");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
        if($attr) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
            return array(null, $name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
        } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
            foreach($this->ns_contexts as $context) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
                foreach($context as $mapping) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
                    if(strlen($mapping[0]) == 0) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
                        return array($mapping, $name);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
    function is_declared_content_ns($new_mapping) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
        foreach($this->content_ns_contexts as $context) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
            foreach($context as $mapping) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
                if($new_mapping == $mapping) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
                    return true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
19
3d72ae0968f4 upgrade wordpress to 6.0.2
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   394
    function xml_escape($content)
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
    {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
             return str_replace(array('&','"',"'",'<','>'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
                array('&amp;','&quot;','&apos;','&lt;','&gt;'),
19
3d72ae0968f4 upgrade wordpress to 6.0.2
ymh <ymh.work@gmail.com>
parents: 18
diff changeset
   398
                $content );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
}