Edit report at https://bugs.php.net/bug.php?id=61469&edit=1
ID: 61469
Comment by: saschagros at gmail dot com
Reported by: saschagros at gmail dot com
Summary: simplexml_load_file() url encodes file names if they
use a stream wrapper
Status: Not a bug
Type: Bug
Package: SimpleXML related
Operating System: Linux/Windows
PHP Version: 5.3.10
Block user comment: N
Private report: N
New Comment:
temporary is not a remote URI that points to a HTTP resource. This is a local
file.
If the space needs to be encoded internally, fine. But it has to be possible to
access a file with a space in it using a stream wrapper? After all,
file_get_contents() works just fine.
Previous Comments:
------------------------------------------------------------------------
[2012-03-22 07:35:40] [email protected]
Looks right. URIs cannot contain spaces. See RFC 3986.
------------------------------------------------------------------------
[2012-03-21 22:43:03] saschagros at gmail dot com
Description:
------------
Drupal uses custom stream wrappers for accessing files.
Given the file name "$imported_file = 'temporary://translated file.xlf'", the
following does not work:
$xml = simplexml_load_file($imported_file);
It results in the following warning:
simplexml_load_file(): I/O warning : failed to load external entity
"temporary://translated%20file.xlf"
However, this works just fine:
$xml_string = file_get_contents($imported_file);
$xml = simplexml_load_string($xml_string);
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61469&edit=1