我试图在我的服务器上运行PHP脚本,使用youtube-dl
下载视频。我的代码看起来像这样:
<form action="download.php" method="get">
<input type="text" name="link"><br>
<input type="submit">
</form>
和我的download.php
看起来像这样:
<?php
$link = escapeshellarg($GET["link"]);
$output = shell_exec('/Applications/MAMP/cgi-bin/youtube-dl ' .$link. ' 2>&1');
echo "<pre>$output</pre>";
?>
因此,当我在表单中插入一个链接时,它应该将链接传递给shell_exec并使用此链接运行命令,但我得到的是:
Usage: youtube-dl [OPTIONS] URL [URL...]
youtube-dl: error: You must provide at least one URL.
这意味着命令没有从GET收到链接。我该如何解决这个问题?
答案 0 :(得分:2)
通过$ _GET-variable访问GET参数。注意“GET”之前的下划线。
答案 1 :(得分:0)
试试这个
shell_exec("/Applications/MAMP/cgi-bin/youtube-dl {$link} 2>&1");
答案 2 :(得分:0)
更改
$link = escapeshellarg($GET["link"]);
到
$link = escapeshellarg(urldecode($_GET["link"]));
并确保您在$_GET["link"]