Edit report at https://bugs.php.net/bug.php?id=62577&edit=1

 ID:                 62577
 Comment by:         sjon at hortensius dot net
 Reported by:        ivan dot enderlin at hoa-project dot net
 Summary:            simplexml_load_file does not file if
                     libxml_disable_entity_loader(true)
 Status:             Assigned
 Type:               Bug
 Package:            SimpleXML related
 Operating System:   All
 PHP Version:        master-Git-2012-07-16 (Git)
 Assigned To:        rrichards
 Block user comment: N
 Private report:     N

 New Comment:

I can confirm this issue; it is very annoying and unexpected. Can't the code, 
as 
a work-around use file-get-contents + simplexml_load_string internally?

This issue is also related to bug #64938 imo


Previous Comments:
------------------------------------------------------------------------
[2013-05-29 07:20:39] Sjon at hortensius dot net

I can confirm this issue; it is very annoying and unexpected. Can't the code, 
as 
a work-around use file-get-contents + simplexml_load_string internally?

This issue is also related to #22215 imo

------------------------------------------------------------------------
[2012-11-15 11:03:10] paj...@php.net

hi Rob!

What would be the best/cleanest fix for this issue? It affects quite a lot of 
apps 
out there.

Thanks!

------------------------------------------------------------------------
[2012-07-16 09:25:29] ivan dot enderlin at hoa-project dot net

I think it's not a normal behavior.

------------------------------------------------------------------------
[2012-07-16 09:22:31] jpa...@php.net

http://lxr.php.net/xref/PHP_5_4/ext/libxml/libxml.c#1058 
libxml_disable_entity_loader(true) registers a NULL function 
(http://lxr.php.net/xref/PHP_5_4/ext/libxml/libxml.c#372) as callback for URI 
input file handling in libxml.
So you cant open any file with libxml after having called this function.

Is that the correct behavior ? I have no clue to answer that

------------------------------------------------------------------------
[2012-07-16 08:56:06] ivan dot enderlin at hoa-project dot net

Description:
------------
The function simplexml_load_file() failed to open any file (existing or not) if 
libxml_disable_entity_loader(true) has been called.

I have tried with simplexml_load_string(), it works; same with new 
SimpleXMLElement() etc. The bug is restricted to the simplexml_load_file() 
function.

Test script:
---------------
<?php

libxml_use_internal_errors(true);
libxml_disable_entity_loader(true);

$xml = simplexml_load_file('foo');

print_r(libxml_get_errors());
var_dump($xml);

Expected result:
----------------
Array
(
)
…

Actual result:
--------------
Array
(
    [0] => LibXMLError Object
        (
            [level] => 1
            [code] => 1549
            [column] => 0
            [message] => failed to load external entity "foo"

            [file] => 
            [line] => 0
        )

)
bool(false)


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=62577&edit=1

Reply via email to