Я пытаюсь запустить сценарий оболочки в PHP на моем сервере, который использует youtube-dl
для загрузки видео. Мой код выглядит следующим образом:Передача переменных GET в shell_exec в PHP
<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. Как я могу это решить?
Это похоже на работу, но теперь я получил другую ошибку: 'TypeError: execv() arg 2 должен содержать только строки' – Hyperion