Разрешения на отправку файлов 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);
У кого-нибудь есть какие-либо идеи, почему это так?
2 answers
Дать decoct()
шанс. Я не уверен, что это сработает, но ты можешь попробовать.
Еще одна вещь, которую вы можете попробовать, - это хранить значения разрешений в константах с define()
Строка может быть интерпретирована как десятичная.
Кроме того, какой тип $permission
? Попробуйте использовать var_dump()
на нем. Это тоже может быть строка.
$a = 0644;
$b = (int) "0644";
var_dump($a, $b); // int(420), int(644)