在ffmpeg文件名varible php中转义单个qoute

时间:2016-11-22 03:49:29

标签: php ffmpeg escaping

代码工作正常,但如果文件名只有一个qoute就像"布兰妮的视频.mp4"它不起作用。

http.authorizeRequests()
        .antMatchers("/login").permitAll()
        .antMatchers("/admin/**").access("hasRole('ADMIN')")
        .and().formLogin().loginPage("/login")

2 个答案:

答案 0 :(得分:1)

我让它工作但没有使用过于复杂的东西。 谢谢所有

$comd = "/usr/local/bin/ffmpeg -i \"$video_file\" -y -f mjpeg -ss 00:00:30 -vframes 1 \"$thumbnail\" 2>&1"; shell_exec($comd);
shell_exec($comd);

答案 1 :(得分:-1)

正如评论中所建议的那样,您可以将所有shell命令字符串包装在escapeshellarg()中,如下所示。

<?php

    foreach(glob($videos) as $video_file){
        $lfilename = basename($video_file);
        $filename  = basename($video_file, ".mp4");
        $thumbnail = $ouput_path.$filename.'.jpg';

        if (!file_exists($filename)) {
            $cmd         = "/usr/local/bin/ffmpeg -i ";
            $cmd        .= $video_file . " -an -y -f mjpeg -ss 00:00:30 ";
            $cmd        .= "-vframes 1 " . $thumbnail;

            exec( escapeshellarg($cmd) );
        }