Exemple #1 Ouverture d'un flux depuis une connexion active
<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>
Exemple #2 La variable $session doit rester disponible !
Afin d'utiliser le gestionnaire ssh2.*://$session, vous
devez conserver la variable de ressource $session disponible.
Le code ci-dessous n'aura pas l'effet escompté :
<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret');
$connection_string = "ssh2.sftp://$session/";
unset($session);
$stream = fopen($connection_string . "path/to/file", 'r');
?>
La fonction unset() clôt la session, car la variable $connection_string
ne contient pas de référence à la variable $session, mais uniquement
une chaîne dérivée. Ceci survient également lorsque la fonction
unset() est implicite, lors d'une sortie du scope (comme dans une
fonction).