ID: 22868 Comment by: volhv at skyfia dot ru Reported By: kirk at coraldesigns dot com Status: Bogus Bug Type: XSLT related Operating System: Windows XP PHP Version: 4.3.2 Stable 22 April New Comment:
The structure of my server: Document root is "X:\www\htdocs" ServerRoot is "X:\www\apache" PHPRoot is "X:\www\PHP" everything is configured to work fine without calling Sablotron functions. But when passing xslt_process .xslt-filename with script-related path, for example "./dir/file.xslt", it thinks that current direrctory is ServerRoot and tries to get file "X:\www\apache\dir\file.xslt" Of cource function fails. Warning: Sablotron error on line 28: cannot open file 'x:/www/apache/doc/pt0.xml' in x:\www\htdocs\meridian\inc\xslt.php on line 10 It works fine on FreeBSD, but doesn't work on Win2k. EVEN IF I USE "FILE://" BEFORE URI Previous Comments: ------------------------------------------------------------------------ [2003-04-23 04:51:32] [EMAIL PROTECTED] >From Manual: "Note: Please note that file:// is needed in front of path if you use Windows." ------------------------------------------------------------------------ [2003-04-22 22:00:09] kirk at coraldesigns dot com I just checked it in the latest stable release, it still doesn't work. I still had to copy both the XSL and XML files to the directory with php.exe to get it to work. It however works flawlessly with 4.3.1 under Linux. So this is a Win32 bug alone. ------------------------------------------------------------------------ [2003-04-21 09:18:32] [EMAIL PROTECTED] No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. ------------------------------------------------------------------------ [2003-04-09 16:48:13] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip ------------------------------------------------------------------------ [2003-03-25 02:16:45] kirk at coraldesigns dot com The xslt_process() command is expecting a uri relative to the path of php.exe and not that of the script calling it. Using an XML file and an XSL with the following script: // script location: c:/apache/htdocs/pathto/test.php <?php $xsltproc = xslt_create(); $html = xslt_process($xsltproc, 'test.xml', 'test.xsl'); // some error checking left out for simplicity echo $html; ?> I get the following error: XSLT processing error: cannot open file 'c:/apache/php/test.xsl' I read the archives, and saw that this bug was previously reported for 4.3.0 and then closed as fixed in CVS. However 4.3.2 RC1 still exhibits this behaviour. This was then re-tagged as a documentation error, however this behaviour is not right, as developers should not have access to the path with php.exe. Some possible fixes which were recommended were to override the base path with xslt_set_base(), however this would make the scripts machine specific and reduce portability. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=22868&edit=1