Edit report at https://bugs.php.net/bug.php?id=61469&edit=1
ID: 61469 Updated by: cataphr...@php.net Reported by: saschagros at gmail dot com Summary: simplexml_load_file() url encodes file names if they use a stream wrapper Status: Open Type: Bug Package: SimpleXML related Operating System: Linux/Windows PHP Version: 5.3.10 Block user comment: N Private report: N New Comment: The fact file_get_contents "works just fine" is irrelevant. There's a difference between what 1) URIs you're willing to accept and 2) which URIs you generate. Only the latter must be well-formed. And in fact libxml generates correct URIs. The bug is in your custom stream wrapper that doesn't parse the path in URI correctly and just takes it as is. Previous Comments: ------------------------------------------------------------------------ [2012-03-22 14:00:44] saschagros at gmail dot com 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. ------------------------------------------------------------------------ [2012-03-22 07:35:40] cataphr...@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