相关疑难解决方法(0)

如何使用PHP进行SFTP?

我遇到过很多用于Web FTP客户端的PHP脚本.我需要在PHP中将SFTP客户端实现为Web应用程序.PHP是否支持SFTP?我找不到样品.谁能帮我这个?

php sftp

79
推荐指数
4
解决办法
14万
查看次数

ffmpeg进度条 - PHP中的编码百分比

我用PHP编写了一个完整的系统,并在服务器上使用bash在我的VPS上转换和流式传输HTML5中的视频.转换由ffmpeg在后台完成,内容输出到block.txt.

看过以下帖子:

ffmpeg可以显示进度条吗?

ffmpeg视频编码进度条

除其他外,我找不到一个有效的例子.

我需要以百分比的形式获取当前编码的进度.

我上面链接的第一篇文章给出了:

$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 regex parsing ffmpeg

21
推荐指数
2
解决办法
3万
查看次数

如何从PHP上传SFTP文件

我在使用PHP来SFTP上传文件到远程服务器时遇到了麻烦.当我使用cURL时,我收到此处描述的错误:

来自PHP的SFTP - 未定义的常量CURLOPT_PROTOCOLS和CURLPROTO_SFTP?

我也按照以下建议尝试了phpseclib:

PHP中的SFTP

但是,当我尝试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连接.

php sftp phpseclib

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

php ×3

sftp ×2

ffmpeg ×1

parsing ×1

phpseclib ×1

regex ×1