プロが教える店舗&オフィスのセキュリティ対策術

コマンドラインを実行するために以下のように記述したのですが、Parse errorとなってしまいます・・・。

どこがおかしいのでしょうか?
よろしくお願いいたしますm(__)m

// 入力ファイル名
$inFile = "input.avi";
// 出力ファイル名
$outFile = "ouput.jpg";
// 実行するコマンドを生成
$cmd = 'ffmpeg -y -i "'$inFile'" -f image2 -ss 00:00:00 -vframes 1 "'$outFile'"';
// コマンド実行
`$cmd`;

A 回答 (2件)

シングルクォーテーションでの文字列表示は


変数を展開しませんので、ダブルクォーテーションベースにするか
ヒアドキュメントでやると、明確で単純化できます。

たとえば以下のようにしてみてください

<?
$inFile = "input.avi";
$outFile = "ouput.jpg";
$cmd = <<<eof
ffmpeg -y -i "{$inFile}" -f image2 -ss 00:00:00 -vframes 1 "{$outFile}"
eof;
print $cmd;
?>
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

ヒアドキュメントにて出来ました♪

ありがとうございましたm(__)m

お礼日時:2009/06/19 15:14

以下の行でエラーとなりますね。


$cmd = 'ffmpeg -y -i "'$inFile'" -f image2 -ss 00:00:00 -vframes 1 "'$outFile'"';

所望のコマンドを想像して書き換えたのが以下です。
$cmd = 'ffmpeg -y -i "' . $inFile . '" -f image2 -ss 00:00:00 -vframes 1 "' . $outFile . '"';

これならばエラーはでませんが、期待したコマンドであるかは分かりませんので確認してみてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2009/06/19 15:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!