Разрешения на отправку файлов PHP ssh2 scp


Я использую функцию PHP ssh2_scp_send для передачи файлов с одного сервера на другой. Интересно то, что если я напишу разрешение в восьмеричной форме (т. Е. 0644) напрямую, все будет работать нормально. Если я вместо этого заключу это в кавычки или использую переменную, это больше не будет работать.

Для большей ясности: Это работает: ssh2_scp_send($conn, $localFile, $remoteFile, 0644);

НЕ работает: ssh2_scp_send($conn, $localFile, $remoteFile, "0644");

НЕ работает: $permission=0644;ssh2_scp_send($conn, $localFile, $remoteFile, $permission);

У кого-нибудь есть какие-либо идеи, почему это так?

 4
Author: Adrien Hingert, 2010-12-18

2 answers

Дать decoct() шанс. Я не уверен, что это сработает, но ты можешь попробовать. Еще одна вещь, которую вы можете попробовать, - это хранить значения разрешений в константах с define()

 2
Author: s3v3n, 2010-12-18 00:25:21

Строка может быть интерпретирована как десятичная.

Кроме того, какой тип $permission? Попробуйте использовать var_dump() на нем. Это тоже может быть строка.

$a = 0644;

$b = (int) "0644";

var_dump($a, $b); // int(420), int(644)

Смотрите это на codepad.org

 1
Author: alex, 2010-12-18 00:20:12