2015-10-04 173 views
1

我想在Windows Server計算機上執行PHP中的命令。PHP exec輸出不返回並執行命令

我使用的代碼是:

<?php 
$out = array(); 
exec('C:\libs\bin\youtube-dl -o "C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw" "http://youtube.com/watch?v=SrMKY5Aoyrw"', $out); 
print_r($out); 
?> 

我在PHP中的結果是:

Array 
(
[0] => [youtube] SrMKY5Aoyrw: Downloading webpage 
[1] => [youtube] SrMKY5Aoyrw: Downloading video info webpage 
[2] => [youtube] SrMKY5Aoyrw: Extracting video information 
[3] => [youtube] SrMKY5Aoyrw: Downloading DASH manifest 
[4] => [youtube] SrMKY5Aoyrw: Downloading DASH manifest 
) 

我的結果應該是:

C:\xampp\htdocs\API\jbb15\convert>C:\libs\bin\youtube-dl -o "C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw" "http://youtube.com/watch?v=SrMKY5Aoyrw" 
[youtube] SrMKY5Aoyrw: Downloading webpage 
[youtube] SrMKY5Aoyrw: Downloading video info webpage 
[youtube] SrMKY5Aoyrw: Extracting video information 
[youtube] SrMKY5Aoyrw: Downloading DASH manifest 
[youtube] SrMKY5Aoyrw: Downloading DASH manifest 
WARNING: Requested formats are incompatible for merge and will be merged into mkv. 
[download] Destination: C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw.f137 
[download] 100% of 111.72MiB in 00:01 
[download] Destination: C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw.f251 
[download] 100% of 8.13MiB in 00:00 
[ffmpeg] Merging formats into "C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw.mkv" 
Deleting original file C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw.f137 (pass -k to keep) 
Deleting original file C:\xampp\htdocs\API\jbb15\convert\SrMKY5Aoyrw.f251 (pass -k to keep) 

關於這個問題爲:如果將命令複製到Windows CMD中,則完全相同的命令與上述PHP腳本完全相同。沒有PHP錯誤日誌。命令--verbose在PHP中不會返回任何內容,但可以在Windows cmd中運行。

+0

嘗試http://php.net/manual/en/function.passthru.php –

+0

這返回了同樣的問題。差異:最後是「255」。 – Styler2go

+0

你應該嘗試使用'--no-warnings'來忽略警告 –

回答

0

感謝您的貢獻。問題是我沒有設置> msg.log 2> msg2.log

WARNING: Requested formats are incompatible for merge and will be merged into mkv.2>中運行,因此停止執行。

命令--no-warnings也可能解決了它。

相關問題