duanji2014
2015-06-17 10:58
浏览 467
已采纳

在PHP中将GET变量传递给shell_exec

I'm trying to run a shell script in PHP on my server that use youtube-dl to download a video. My code look like this:

<form action="download.php" method="get">
<input type="text" name="link"><br>
<input type="submit">
</form>

and my download.php look like this:

<?php
$link = escapeshellarg($GET["link"]);
$output = shell_exec('/Applications/MAMP/cgi-bin/youtube-dl ' .$link. ' 2>&1');
echo "<pre>$output</pre>";
?>

So when I insert a link in my form, it should pass the link to the shell_exec and run the command with this link, but what I got is this:

Usage: youtube-dl [OPTIONS] URL [URL...]

youtube-dl: error: You must provide at least one URL.

Which means that command didn't received the link from GET. How can I solve this?

图片转代码服务由CSDN问答提供 功能建议

我正在尝试在我的服务器上使用 youtube-dl在PHP中运行shell脚本</ 代码>下载视频。 我的代码如下所示:</ p>

 &lt; form action =“download.php”method =“get”&gt; 
&lt; input type =“text”name =“link  “&gt;&lt; br&gt; 
&lt; input type =”submit“&gt; 
&lt; / form&gt; 
 </ code> </ pre> 
 
 

</ p> \ n

和我的 download.php </ code>如下所示:</ p>

 &lt;?php 
 $ link = escapeshellarg($ GET [“link  “]); 
 $ output = shell_exec('/ Applications / MAMP / cgi-bin / youtube-dl'。$ link。'2&gt;&amp; 1'); 
echo”&lt; pre&gt; $ output&lt; / pre&gt  ;“; 
?&gt; 
 </ code> </ pre> 
 
 

因此,当我在表单中插入链接时,它应该将链接传递给shell_exec并使用此链接运行命令 ,但我得到的是:</ p>

 用法:youtube-dl [OPTIONS] URL [URL ...] 
 
youtube-dl:错误:你必须在 至少一个URL。
 </ code> </ pre> 
 
 

这意味着命令没有从GET收到链接。 我该如何解决这个问题?</ p> </ div>

3条回答 默认 最新

相关推荐 更多相似问题