Bug #61469 [Com]: simplexml_load_file() url encodes file names if they use a stream wrapper
| From: | saschagros at gmail dot com | Date: | Thu, 22 Mar 2012 14:00:44 +0000 |
| Subject: | Bug #61469 [Com]: simplexml_load_file() url encodes file names if they use a stream wrapper | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-168719@lists.php.net to get a copy of this message | ||
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] cataphract@php.net
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