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