【问题标题】:Using PHP to call a script to manipulate files or ssh? [closed]使用 PHP 调用脚本来操作文件或 ssh? [关闭]
【发布时间】:2011-03-07 18:54:01
【问题描述】:

有人告诉我,这可以通过 PHP 来实现。我有我的网站,并且有一个选择框。我希望从 sftp 服务器上的文件夹内容中填充选项。然后单击我想获取关联的文件并将它们移动到我的本地计算机。有没有关于如何做到这一点的好教程?我很难找到一个。

谢谢

【问题讨论】:

    标签: php ssh sftp


    【解决方案1】:

    就是这样:

    SFTP from within PHP

    使用 PHP 中的 cURL 来查询删除 SFTP 服务器,用于列表和文件检索。

    php 手册是here。如果您的 sFTP 服务器是公开可用的,则您不需要任何 SSH 脚本(顺便说一句,在大多数共享主机环境中通常严格禁止这种脚本)。 Curl 会为你做一切。

    【讨论】:

    • sftp 不受支持。 curl sftp://user@host:22 curl: (1) 不支持的协议:sftp
    • 我正在尝试让 IT 人员更新 curl,ssh2 看起来也很有用。希望我有root访问权限。我尝试了 exec('ssh blah blah') 并没有奏效。还尝试了 exec('perl sample.pl') 其中 sample.pl 只有 ssh blah blah blah 我认为它甚至没有运行。
    • 所有函数,如 exec()、system() 等总是受到限制,让 IT 部门启用它们确实是一项艰巨的任务,因为它们为潜在的致命漏洞开辟了道路。如果你能让你的卷曲工作,那将是最好的解决方案!
    【解决方案2】:

    你可以使用 exec 方法 http://php.net/manual/en/function.exec.php

    <?php
    echo exec('ssh -help');
    ?>
    

    【讨论】:

      【解决方案3】:

      在选择框中,您可以列出文件:

         if (is_dir($dir)) {
              if ($fh = opendir($dir)) {
                  while (($file = readdir($fh)) !== false) {
                      if($file != "." && $file != "..") 
                          $files[] = $file;               
                  }
                  closedir($fh);
              }
          }
      

      要将文件从一台主机传输到另一台主机,您可以使用 php exec 和 scp:

      exec('scp host1:/path/to/oldfile host2:/path/to/newfile');
      

      【讨论】:

      • 他正在尝试从远程服务器获取列表,而这些功能只能在本地服务器上运行
      • 哦,你说得对,第一个只适用于本地。他可以,但是 sftp 服务器上的这个 php 代码;)第二个代码应该适用
      猜你喜欢
      • 1970-01-01
      • 2012-09-27
      • 2017-05-30
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 2017-04-17
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多