Edit report at http://bugs.php.net/bug.php?id=54947&edit=1
ID: 54947 Comment by: zelnaga at gmail dot com Reported by: josvanbakel at gmail dot com Summary: ssh2.sftp protocol wrapper works incorrectly for paths which contain a '#' Status: Open Type: Bug Package: *Network Functions Operating System: Ubuntu PHP Version: Irrelevant Block user comment: N Private report: N New Comment: You'd probably have more success with phpseclib, a pure PHP SFTP implementation: http://phpseclib.sourceforge.net/ Doesn't absolve the maintainer of the php_ssh2.dll from fixing this bug but it's a work around you can none-the-less use until the problem is fixed. Previous Comments: ------------------------------------------------------------------------ [2011-05-28 15:42:31] josvanbakel at gmail dot com Description: ------------ When trying to read a file or directory via the ssh2.sftp protocol wrapper which contains a '#' in the path ssh2.sftp will ignore it. It looks like it treats the '#' as a start comment command (e.g. // in PHP) In the test script, i have used the following directory structure: #Test/ a Test#/ b Test/ c Note that creating the directories from the bash shell requires escaping the # with a \, e.g.: mkdir \#Test Test script: --------------- // $sftp is a ssh2_sftp resource // $dir is the directory containing the test directory structure (see description) $root = "ssh2.sftp://$sftp/$dir"; $a = scandir("$root/#Test"); // $a = array(".", "..", "#Test", "Test#", "Test"); // Note that $a is a dir listing of $root, everything after the # is ignored $b = scandir("$root/Test#"); // $b = array(".", "..", "c"); // Gives a listing of Test not of Test# Expected result: ---------------- $a = array(".", "..", "a"); $b = array(".", "..", "b"); Actual result: -------------- $a = array(".", "..", "#Test", "Test#", "Test"); $b = array(".", "..", "c"); ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=54947&edit=1