Whoops \ Exception \ ErrorException (E_WARNING)
SimpleXMLElement::asXML(): xmlEscapeEntities : char out of range Whoops\Exception\ErrorException thrown with message "SimpleXMLElement::asXML(): xmlEscapeEntities : char out of range" Stacktrace: #14 Whoops\Exception\ErrorException in /var/www/conadecus/htdocs/cms/wp-includes/embed.php:700 #13 SimpleXMLElement:asXML in /var/www/conadecus/htdocs/cms/wp-includes/embed.php:700 #12 _oembed_create_xml in /var/www/conadecus/htdocs/cms/wp-includes/embed.php:651 #11 _oembed_rest_pre_serve_request in /var/www/conadecus/htdocs/cms/wp-includes/class-wp-hook.php:286 #10 WP_Hook:apply_filters in /var/www/conadecus/htdocs/cms/wp-includes/plugin.php:203 #9 apply_filters in /var/www/conadecus/htdocs/cms/wp-includes/rest-api/class-wp-rest-server.php:372 #8 WP_REST_Server:serve_request in /var/www/conadecus/htdocs/cms/wp-includes/rest-api.php:266 #7 rest_api_loaded in /var/www/conadecus/htdocs/cms/wp-includes/class-wp-hook.php:286 #6 WP_Hook:apply_filters in /var/www/conadecus/htdocs/cms/wp-includes/class-wp-hook.php:310 #5 WP_Hook:do_action in /var/www/conadecus/htdocs/cms/wp-includes/plugin.php:515 #4 do_action_ref_array in /var/www/conadecus/htdocs/cms/wp-includes/class-wp.php:375 #3 WP:parse_request in /var/www/conadecus/htdocs/cms/wp-includes/class-wp.php:715 #2 WP:main in /var/www/conadecus/htdocs/cms/wp-includes/functions.php:960 #1 wp in /var/www/conadecus/htdocs/cms/wp-blog-header.php:16 #0 require in /var/www/conadecus/htdocs/index.php:11
Stack frames (15)
14
Whoops
\
Exception
\
ErrorException
/
htdocs
/
cms
/
wp-includes
/
embed.php
700
13
SimpleXMLElement
asXML
/
htdocs
/
cms
/
wp-includes
/
embed.php
700
12
_oembed_create_xml
/
htdocs
/
cms
/
wp-includes
/
embed.php
651
11
_oembed_rest_pre_serve_request
/
htdocs
/
cms
/
wp-includes
/
class-wp-hook.php
286
10
WP_Hook
apply_filters
/
htdocs
/
cms
/
wp-includes
/
plugin.php
203
9
apply_filters
/
htdocs
/
cms
/
wp-includes
/
rest-api
/
class-wp-rest-server.php
372
8
WP_REST_Server
serve_request
/
htdocs
/
cms
/
wp-includes
/
rest-api.php
266
7
rest_api_loaded
/
htdocs
/
cms
/
wp-includes
/
class-wp-hook.php
286
6
WP_Hook
apply_filters
/
htdocs
/
cms
/
wp-includes
/
class-wp-hook.php
310
5
WP_Hook
do_action
/
htdocs
/
cms
/
wp-includes
/
plugin.php
515
4
do_action_ref_array
/
htdocs
/
cms
/
wp-includes
/
class-wp.php
375
3
WP
parse_request
/
htdocs
/
cms
/
wp-includes
/
class-wp.php
715
2
WP
main
/
htdocs
/
cms
/
wp-includes
/
functions.php
960
1
wp
/
htdocs
/
cms
/
wp-blog-header.php
16
0
require
/
htdocs
/
index.php
11
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
embed.php
    }
 
    if ( null === $node ) {
        $node = new SimpleXMLElement( '<oembed></oembed>' );
    }
 
    foreach ( $data as $key => $value ) {
        if ( is_numeric( $key ) ) {
            $key = 'oembed';
        }
 
        if ( is_array( $value ) ) {
            $item = $node->addChild( $key );
            _oembed_create_xml( $value, $item );
        } else {
            $node->addChild( $key, esc_html( $value ) );
        }
    }
 
    return $node->asXML();
}
 
/**
 * Filters the given oEmbed HTML.
 *
 * If the `$url` isn't on the trusted providers list,
 * we need to filter the HTML heavily for security.
 *
 * Only filters 'rich' and 'html' response types.
 *
 * @since 4.4.0
 *
 * @param string $result The oEmbed HTML result.
 * @param object $data   A data object result from an oEmbed provider.
 * @param string $url    The URL of the content to be embedded.
 * @return string The filtered and sanitized oEmbed result.
 */
function wp_filter_oembed_result( $result, $data, $url ) {
    if ( false === $result || ! in_array( $data->type, array( 'rich', 'video' ) ) ) {
        return $result;
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
embed.php
    }
 
    if ( null === $node ) {
        $node = new SimpleXMLElement( '<oembed></oembed>' );
    }
 
    foreach ( $data as $key => $value ) {
        if ( is_numeric( $key ) ) {
            $key = 'oembed';
        }
 
        if ( is_array( $value ) ) {
            $item = $node->addChild( $key );
            _oembed_create_xml( $value, $item );
        } else {
            $node->addChild( $key, esc_html( $value ) );
        }
    }
 
    return $node->asXML();
}
 
/**
 * Filters the given oEmbed HTML.
 *
 * If the `$url` isn't on the trusted providers list,
 * we need to filter the HTML heavily for security.
 *
 * Only filters 'rich' and 'html' response types.
 *
 * @since 4.4.0
 *
 * @param string $result The oEmbed HTML result.
 * @param object $data   A data object result from an oEmbed provider.
 * @param string $url    The URL of the content to be embedded.
 * @return string The filtered and sanitized oEmbed result.
 */
function wp_filter_oembed_result( $result, $data, $url ) {
    if ( false === $result || ! in_array( $data->type, array( 'rich', 'video' ) ) ) {
        return $result;
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
embed.php
function _oembed_rest_pre_serve_request( $served, $result, $request, $server ) {
    $params = $request->get_params();
 
    if ( '/oembed/1.0/embed' !== $request->get_route() || 'GET' !== $request->get_method() ) {
        return $served;
    }
 
    if ( ! isset( $params['format'] ) || 'xml' !== $params['format'] ) {
        return $served;
    }
 
    // Embed links inside the request.
    $data = $server->response_to_data( $result, false );
 
    if ( ! class_exists( 'SimpleXMLElement' ) ) {
        status_header( 501 );
        die( get_status_header_desc( 501 ) );
    }
 
    $result = _oembed_create_xml( $data );
 
    // Bail if there's no XML.
    if ( ! $result ) {
        status_header( 501 );
        return get_status_header_desc( 501 );
    }
 
    if ( ! headers_sent() ) {
        $server->send_header( 'Content-Type', 'text/xml; charset=' . get_option( 'blog_charset' ) );
    }
 
    echo $result;
 
    return true;
}
 
/**
 * Creates an XML string from a given array.
 *
 * @since 4.4.0
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
class-wp-hook.php
        }
 
        $nesting_level = $this->nesting_level++;
 
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = $priority = current( $this->iterations[ $nesting_level ] );
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if( ! $this->doing_action ) {
                    $args[ 0 ] = $value;
                }
 
                // Avoid the array_slice if possible.
                if ( $the_['accepted_args'] == 0 ) {
                    $value = call_user_func_array( $the_['function'], array() );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int)$the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Executes the callback functions hooked on a specific action hook.
     *
     * @since 4.7.0
     *
     * @param mixed $args Arguments to pass to the hook callbacks.
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
plugin.php
        $args = func_get_args();
        _wp_call_all_hook($args);
    }
 
    if ( !isset($wp_filter[$tag]) ) {
        if ( isset($wp_filter['all']) )
            array_pop($wp_current_filter);
        return $value;
    }
 
    if ( !isset($wp_filter['all']) )
        $wp_current_filter[] = $tag;
 
    if ( empty($args) )
        $args = func_get_args();
 
    // don't pass the tag name to WP_Hook
    array_shift( $args );
 
    $filtered = $wp_filter[ $tag ]->apply_filters( $value, $args );
 
    array_pop( $wp_current_filter );
 
    return $filtered;
}
 
/**
 * Execute functions hooked on a specific filter hook, specifying arguments in an array.
 *
 * @since 3.0.0
 *
 * @see apply_filters() This function is identical, but the arguments passed to the
 * functions hooked to `$tag` are supplied using an array.
 *
 * @global array $wp_filter         Stores all of the filters
 * @global array $wp_current_filter Stores the list of current filters with the current one last
 *
 * @param string $tag  The name of the filter hook.
 * @param array  $args The arguments supplied to the functions hooked to $tag.
 * @return mixed The filtered value after all hooked functions are applied to it.
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
rest-api
/
class-wp-rest-server.php
        $this->send_headers( $headers );
 
        $code = $result->get_status();
        $this->set_status( $code );
 
        /**
         * Filters whether the request has already been served.
         *
         * Allow sending the request manually - by returning true, the API result
         * will not be sent to the client.
         *
         * @since 4.4.0
         *
         * @param bool             $served  Whether the request has already been served.
         *                                           Default false.
         * @param WP_HTTP_Response $result  Result to send to the client. Usually a WP_REST_Response.
         * @param WP_REST_Request  $request Request used to generate the response.
         * @param WP_REST_Server   $this    Server instance.
         */
        $served = apply_filters( 'rest_pre_serve_request', false, $result, $request, $this );
 
        if ( ! $served ) {
            if ( 'HEAD' === $request->get_method() ) {
                return null;
            }
 
            // Embed links inside the request.
            $result = $this->response_to_data( $result, isset( $_GET['_embed'] ) );
 
            /**
             * Filters the API response.
             *
             * Allows modification of the response data after inserting
             * embedded data (if any) and before echoing the response data.
             *
             * @since 4.8.1
             *
             * @param array            $result  Response data to send to the client.
             * @param WP_REST_Server   $this    Server instance.
             * @param WP_REST_Request  $request Request used to generate the response.
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
rest-api.php
        return;
    }
 
    /**
     * Whether this is a REST Request.
     *
     * @since 4.4.0
     * @var bool
     */
    define( 'REST_REQUEST', true );
 
    // Initialize the server.
    $server = rest_get_server();
 
    // Fire off the request.
    $route = untrailingslashit( $GLOBALS['wp']->query_vars['rest_route'] );
    if ( empty( $route ) ) {
        $route = '/';
    }
    $server->serve_request( $route );
 
    // We're done.
    die();
}
 
/**
 * Retrieves the URL prefix for any API resource.
 *
 * @since 4.4.0
 *
 * @return string Prefix.
 */
function rest_get_url_prefix() {
    /**
     * Filters the REST URL prefix.
     *
     * @since 4.4.0
     *
     * @param string $prefix URL prefix. Default 'wp-json'.
     */
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
class-wp-hook.php
        }
 
        $nesting_level = $this->nesting_level++;
 
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = $priority = current( $this->iterations[ $nesting_level ] );
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if( ! $this->doing_action ) {
                    $args[ 0 ] = $value;
                }
 
                // Avoid the array_slice if possible.
                if ( $the_['accepted_args'] == 0 ) {
                    $value = call_user_func_array( $the_['function'], array() );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int)$the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Executes the callback functions hooked on a specific action hook.
     *
     * @since 4.7.0
     *
     * @param mixed $args Arguments to pass to the hook callbacks.
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
class-wp-hook.php
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        $this->nesting_level--;
 
        return $value;
    }
 
    /**
     * Executes the callback functions hooked on a specific action hook.
     *
     * @since 4.7.0
     *
     * @param mixed $args Arguments to pass to the hook callbacks.
     */
    public function do_action( $args ) {
        $this->doing_action = true;
        $this->apply_filters( '', $args );
 
        // If there are recursive calls to the current action, we haven't finished it until we get to the last one.
        if ( ! $this->nesting_level ) {
            $this->doing_action = false;
        }
    }
 
    /**
     * Processes the functions hooked into the 'all' hook.
     *
     * @since 4.7.0
     *
     * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     */
    public function do_all_hook( &$args ) {
        $nesting_level = $this->nesting_level++;
        $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
 
        do {
            $priority = current( $this->iterations[ $nesting_level ] );
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
plugin.php
    else
        ++$wp_actions[$tag];
 
    // Do 'all' actions first
    if ( isset($wp_filter['all']) ) {
        $wp_current_filter[] = $tag;
        $all_args = func_get_args();
        _wp_call_all_hook($all_args);
    }
 
    if ( !isset($wp_filter[$tag]) ) {
        if ( isset($wp_filter['all']) )
            array_pop($wp_current_filter);
        return;
    }
 
    if ( !isset($wp_filter['all']) )
        $wp_current_filter[] = $tag;
 
    $wp_filter[ $tag ]->do_action( $args );
 
    array_pop($wp_current_filter);
}
 
/**
 * Check if any action has been registered for a hook.
 *
 * @since 2.5.0
 *
 * @see has_filter() has_action() is an alias of has_filter().
 *
 * @param string        $tag               The name of the action hook.
 * @param callable|bool $function_to_check Optional. The callback to check for. Default false.
 * @return bool|int If $function_to_check is omitted, returns boolean for whether the hook has
 *                  anything registered. When checking a specific function, the priority of that
 *                  hook is returned, or false if the function is not attached. When using the
 *                  $function_to_check argument, this function may return a non-boolean value
 *                  that evaluates to false (e.g.) 0, so use the === operator for testing the
 *                  return value.
 */
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
class-wp.php
        if ( isset($error) )
            $this->query_vars['error'] = $error;
 
        /**
         * Filters the array of parsed query variables.
         *
         * @since 2.1.0
         *
         * @param array $query_vars The array of requested query variables.
         */
        $this->query_vars = apply_filters( 'request', $this->query_vars );
 
        /**
         * Fires once all query variables for the current request have been parsed.
         *
         * @since 2.1.0
         *
         * @param WP $this Current WordPress environment instance (passed by reference).
         */
        do_action_ref_array( 'parse_request', array( &$this ) );
    }
 
    /**
     * Sends additional HTTP headers for caching, content type, etc.
     *
     * Sets the Content-Type header. Sets the 'error' status (if passed) and optionally exits.
     * If showing a feed, it will also send Last-Modified, ETag, and 304 status if needed.
     *
     * @since 2.0.0
     * @since 4.4.0 `X-Pingback` header is added conditionally after posts have been queried in handle_404().
     */
    public function send_headers() {
        $headers = array();
        $status = null;
        $exit_required = false;
 
        if ( is_user_logged_in() )
            $headers = array_merge($headers, wp_get_nocache_headers());
        if ( ! empty( $this->query_vars['error'] ) ) {
            $status = (int) $this->query_vars['error'];
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
class-wp.php
        // Guess it's time to 404.
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();
    }
 
    /**
     * Sets up all of the variables required by the WordPress environment.
     *
     * The action {@see 'wp'} has one parameter that references the WP object. It
     * allows for accessing the properties and methods to further manipulate the
     * object.
     *
     * @since 2.0.0
     *
     * @param string|array $query_args Passed to parse_request().
     */
    public function main($query_args = '') {
        $this->init();
        $this->parse_request($query_args);
        $this->send_headers();
        $this->query_posts();
        $this->handle_404();
        $this->register_globals();
 
        /**
         * Fires once the WordPress environment has been set up.
         *
         * @since 2.1.0
         *
         * @param WP $this Current WordPress environment instance (passed by reference).
         */
        do_action_ref_array( 'wp', array( &$this ) );
    }
}
 
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-includes
/
functions.php
    if ( is_wp_error( $response ) )
        return false;
 
    return wp_remote_retrieve_body( $response );
}
 
/**
 * Set up the WordPress query.
 *
 * @since 2.0.0
 *
 * @global WP       $wp_locale
 * @global WP_Query $wp_query
 * @global WP_Query $wp_the_query
 *
 * @param string|array $query_vars Default WP_Query arguments.
 */
function wp( $query_vars = '' ) {
    global $wp, $wp_query, $wp_the_query;
    $wp->main( $query_vars );
 
    if ( !isset($wp_the_query) )
        $wp_the_query = $wp_query;
}
 
/**
 * Retrieve the description for the HTTP status.
 *
 * @since 2.3.0
 *
 * @global array $wp_header_to_desc
 *
 * @param int $code HTTP status code.
 * @return string Empty string if not found, or description if found.
 */
function get_status_header_desc( $code ) {
    global $wp_header_to_desc;
 
    $code = absint( $code );
 
/
var
/
www
/
conadecus
/
htdocs
/
cms
/
wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( !isset($wp_did_header) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once( dirname(__FILE__) . '/wp-load.php' );
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once( ABSPATH . WPINC . '/template-loader.php' );
 
}
 
/
var
/
www
/
conadecus
/
htdocs
/
index.php
<?php
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);
 
/** Loads the WordPress Environment and Template */
require dirname(__FILE__).'/cms/wp-blog-header.php';
 

Environment & details:

Key Value
q /wp-json/oembed/1.0/embed
url https://www.conadecus.cl/consumidores-les-pasan-la-cuenta-a-las-grandes-marcas/
format xml
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE nginx/1.14.0
REQUEST_URI /wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.conadecus.cl%2Fconsumidores-les-pasan-la-cuenta-a-las-grandes-marcas%2F&format=xml
USER www-data
HOME /var/www
HTTP_CF_IPCOUNTRY US
HTTP_CDN_LOOP cloudflare
HTTP_CF_CONNECTING_IP 18.226.222.12
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_ACCEPT */*
HTTP_CF_VISITOR {\"scheme\":\"https\"}
HTTP_X_FORWARDED_PROTO https
HTTP_CF_RAY 87ebee3239042970-SJC
HTTP_X_FORWARDED_FOR 18.226.222.12
HTTP_ACCEPT_ENCODING gzip, br
HTTP_CONNECTION Keep-Alive
HTTP_HOST www.conadecus.cl
REDIRECT_STATUS 200
SERVER_NAME conadecus.cl
SERVER_PORT 443
SERVER_ADDR 178.128.1.97
REMOTE_PORT 42306
REMOTE_ADDR 172.71.154.146
GATEWAY_INTERFACE CGI/1.1
HTTPS on
REQUEST_SCHEME https
SERVER_PROTOCOL HTTP/1.1
DOCUMENT_ROOT /var/www/conadecus/htdocs
DOCUMENT_URI /index.php
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING q=/wp-json/oembed/1.0/embed&url=https%3A%2F%2Fwww.conadecus.cl%2Fconsumidores-les-pasan-la-cuenta-a-las-grandes-marcas%2F&format=xml
SCRIPT_FILENAME /var/www/conadecus/htdocs/index.php
PATH_INFO
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1714861775.7623
REQUEST_TIME 1714861775
DB_NAME wp_conadecus
DB_USER root
DB_PASSWORD cona20110811
DB_HOST localhost
WP_HOME https://www.conadecus.cl
WP_SITEURL https://www.conadecus.cl/cms
EMAIL_CONTACTO [email protected]
EMAIL_CONTACTO_R [email protected]
EMAIL_CONTACTO_C [email protected]
Key Value
DB_NAME wp_conadecus
DB_USER root
DB_PASSWORD cona20110811
DB_HOST localhost
WP_HOME https://www.conadecus.cl
WP_SITEURL https://www.conadecus.cl/cms
EMAIL_CONTACTO [email protected]
EMAIL_CONTACTO_R [email protected]
EMAIL_CONTACTO_C [email protected]
0. Whoops\Handler\PrettyPageHandler