У меня есть код ниже, чтобы получить контент из удаленного каталога.Используйте opendir один раз вместо того, чтобы использовать его для цикла
$dirHandle = opendir("ssh2.sftp://$sftp/".PATH_OUT);
while (false !== ($file = readdir($dirHandle))) {
// something...
}
Теперь, вещь, приведенный выше код в forloop
. когда я положил $dirHandle = opendir("ssh2.sftp://$sftp/".PNB_PATH_OUT);
за пределы forloop, тогда он дает мне требуемый результат только для первой записи. Итак, очевидно, что readdir
не работает для второй записи в forloop
.
Как это сделать, чтобы использовать opendir
только один раз и использовать это соединение более одного раза?
Требуемое решение
$dirHandle = opendir("ssh2.sftp://$sftp/".PATH_OUT);
for(...){
while (false !== ($file = readdir($dirHandle))) {
// something...
}
}
Это дает мне потепление. Сообщение: readdir() ожидает, что параметр 1 является ресурсом, null задан –
Отладка $ dirHandle, либо opendir терпит неудачу, либо он установлен на нуль на этом пути. Обновите свой пост с помощью своего фактического кода, чтобы мы могли видеть. – Devon
Я использовал '$ dirHandle = rewinddir ($ dirHandle);'. Теперь я использовал просто 'rewinddir ($ dirHandle);' и сообщение: 'rewinddir(): stream не поддерживает поиск' –