From: Wez Furlong > > You'll probably want to check if the path is a URI or local path first; > the > > streams code checks for :// to make this decision.
I loaded the soap extension and now run into an issue (though streams now work in dom without having to touch it). xmlRegisterInputCallbacks is in the global libxml space, so streams are automatically supported in all libxml based extensions upon the soap MINIT. When a file:// uri is passed in, you end up with an E_NOTICE as the streams code issues a php_error_docref that the stream cannot be found. Although, libxml will continue on matching against its default handlers which successfully finds the file:// handler. As libxml converts all local filepaths to file uris, this notice is generated with all external referenced files within the document as well. Anyway that the errors can be surpressed as libxml already handles the return code? It would be nice if that block of code could be ripped out of soap and put into a some libxml module which php would load on startup if libxml were defined, so that streams would be included by default for all libxml extensions. This module would then handle any global functionality needed in startup/shutdown rather than the individual extensions trying to deal with them.Something like this would also have prevented the issue with 2.5.8 and the parser cleanup. Now about the path resolution. Do you know if: #ifdef VIRTUAL_DIR virtual_filepath_ex(source, &resolved_path, NULL TSRMLS_CC); #else resolved_path = source; #endif is the correct way to resolve the paths, which could be anything like: file:///../xmltest.xml ./xmltest.xml /www/xmltest.xml E:\xmltest.xml file:///E:\xmltest.xml or is there anything more or different that needs to be done to insure that relative paths are expanded? Thanks, Rob -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php