【发布时间】:2018-04-17 14:14:43
【问题描述】:
我想运行shell_exec('youtube-dl -j ' . $url);,但它不适用于我的 PHP 脚本并返回空白数组。当我尝试通过 cmd 手动运行时,它工作正常。
我尝试了 localhost 和我的服务器,但两者都不起作用......我已经尝试了许多解决方案并实施它,但我仍然不能。
这是我的 PHP 脚本
$url = clearString($this->security->xss_clean($this->input->post("url")));
$data['url'] = $url;
if(filter_var($url, FILTER_VALIDATE_URL)) {
$domain = strtolower(getDomainName($url));
$source = $this->DefaultModel->getSource($domain);
$data['source'] = $domain;
$cacheVar = "mediaInfo-".md5($url);
if(!$mediaInfo = $this->cache->get($cacheVar)) {
$mediaInfo = shell_exec('youtube-dl -j '.$url);
$this->cache->save($cacheVar,$mediaInfo,$source['linkCacheTime']);
}
}
当我执行 $output = shell_exec("set"); 它的返回输出时,我想在我的 xampp 服务器 loaclhost 上运行 shell_exec('youtube-dl -j '.$url); 命令。
【问题讨论】:
-
尝试捕获标准错误。这可能会显示一些关于正在发生的事情的信息。
$mediaInfo = shell_exec('2>&1 youtube-dl -j '.$url) -
当我运行 shell_exec('2>&1 youtube-dl -j '.$url) 时返回:'youtube-dl' 不被识别为内部或外部命令、可运行程序或批处理文件.
-
我知道如何使这项工作,但在 Linux 中不是 Windows。
标签: php cmd shell-exec youtube-dl