我遇到过很多用于Web FTP客户端的PHP脚本.我需要在PHP中将SFTP客户端实现为Web应用程序.PHP是否支持SFTP?我找不到样品.谁能帮我这个?
我用PHP编写了一个完整的系统,并在服务器上使用bash在我的VPS上转换和流式传输HTML5中的视频.转换由ffmpeg在后台完成,内容输出到block.txt.
看过以下帖子:
和
除其他外,我找不到一个有效的例子.
我需要以百分比的形式获取当前编码的进度.
我上面链接的第一篇文章给出了:
$log = @file_get_contents('block.txt');
preg_match("/Duration:([^,]+)/", $log, $matches);
list($hours,$minutes,$seconds,$mili) = split(":",$matches[1]);
$seconds = (($hours * 3600) + ($minutes * 60) + $seconds);
$seconds = round($seconds);
$page = join("",file("$txt"));
$kw = explode("time=", $page);
$last = array_pop($kw);
$values = explode(' ', $last);
$curTime = round($values[0]);
$percent_extracted = round((($curTime * 100)/($seconds)));
echo $percent_extracted;
Run Code Online (Sandbox Code Playgroud)
$ percent_extracted变量回零,由于数学不是我的强项,我真的不知道如何在这里取得进展.
这是来自block.txt的ffmpeg输出的一行(如果它有用)
时间= 00:19:25.16比特率= 823.0kbits/s帧= 27963 fps = 7 q = 0.0 size = 117085kB时间= 00:19:25.33比特率= 823.1kbits/s帧= 27967 fps = 7 …
我在使用PHP来SFTP上传文件到远程服务器时遇到了麻烦.当我使用cURL时,我收到此处描述的错误:
来自PHP的SFTP - 未定义的常量CURLOPT_PROTOCOLS和CURLPROTO_SFTP?
我也按照以下建议尝试了phpseclib:
但是,当我尝试phpseclib时,我得到这些错误:
Warning: require_once(Math/BigInteger.php) [function.require-once]: failed to open stream: No such file or directory in /home/john/public_html/test/Net/SSH2.php on line 53
Fatal error: require_once() [function.require]: Failed opening required 'Math/BigInteger.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/john/public_html/test/Net/SSH2.php on line 53
Run Code Online (Sandbox Code Playgroud)
然后我尝试在php中使用系统命令,但没有任何反应:
<?php
echo system('sftp user@ftp.domain.com');
echo system('password');
echo system('put file.csv');
?>
Run Code Online (Sandbox Code Playgroud)
我也试过了
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>
Run Code Online (Sandbox Code Playgroud)
但是我的php服务器说没有定义ss2_connect.
我试图从终端做以下事情
scp file.csv user@ftp.remote.com
password
Run Code Online (Sandbox Code Playgroud)
但是服务器不允许使用scp命令.我没有shell访问权限来创建ssh密钥.
我现在能做的就是从终端sftp并手动上传.但我真的想自动化这个,所以PHP网站可以做到这一切.
关于如何从PHP上传SFTP的教程并不多.是因为这是一件坏事吗?如果是这样,我该怎么办?我要上传的服务器只允许sftp连接.