/var/www/hkosl.com/aga/wp-admin/link-parse-opml.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/**
 * Parse OPML XML files and store in globals.
 *
 * @package WordPress
 * @subpackage Administration
 */

if ( ! defined'ABSPATH' ) ) {
    die();
}

/**
 * @global string $opml
 */
global $opml;

/**
 * XML callback function for the start of a new XML tag.
 *
 * @since 0.71
 * @access private
 *
 * @global array $names
 * @global array $urls
 * @global array $targets
 * @global array $descriptions
 * @global array $feeds
 *
 * @param mixed $parser XML Parser resource.
 * @param string $tagName XML element name.
 * @param array $attrs XML element attributes.
 */
function startElement$parser$tagName$attrs ) {
    global 
$names$urls$targets$descriptions$feeds;

    if ( 
'OUTLINE' === $tagName ) {
        
$name '';
        if ( isset( 
$attrs['TEXT'] ) ) {
            
$name $attrs['TEXT'];
        }
        if ( isset( 
$attrs['TITLE'] ) ) {
            
$name $attrs['TITLE'];
        }
        
$url '';
        if ( isset( 
$attrs['URL'] ) ) {
            
$url $attrs['URL'];
        }
        if ( isset( 
$attrs['HTMLURL'] ) ) {
            
$url $attrs['HTMLURL'];
        }

        
// Save the data away.
        
$names[]        = $name;
        
$urls[]         = $url;
        
$targets[]      = isset( $attrs['TARGET'] ) ? $attrs['TARGET'] : '';
        
$feeds[]        = isset( $attrs['XMLURL'] ) ? $attrs['XMLURL'] : '';
        
$descriptions[] = isset( $attrs['DESCRIPTION'] ) ? $attrs['DESCRIPTION'] : '';
    } 
// End if outline.
}

/**
 * XML callback function that is called at the end of a XML tag.
 *
 * @since 0.71
 * @access private
 *
 * @param mixed $parser XML Parser resource.
 * @param string $tagName XML tag name.
 */
function endElement$parser$tagName ) {
    
// Nothing to do.
}

// Create an XML parser
if ( ! function_exists'xml_parser_create' ) ) {
    
trigger_error__"PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
    
wp_die__"PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
}

$xml_parser xml_parser_create();

// Set the functions to handle opening and closing tags
xml_set_element_handler$xml_parser'startElement''endElement' );

if ( ! 
xml_parse$xml_parser$opmltrue ) ) {
    
printf(
        
/* translators: 1: error message, 2: line number */
        
__'XML Error: %1$s at line %2$s' ),
        
xml_error_stringxml_get_error_code$xml_parser ) ),
        
xml_get_current_line_number$xml_parser )
    );
}

// Free up memory used by the XML parser
xml_parser_free$xml_parser );