php - 如何在 php 中使用路径信息?

标签 php ffmpeg switch-statement http-status-code-500 pathinfo

我正在编写如下所示的 php 代码,其中 Line#A 打印以下数组(如下所示 php 代码)。我的代码似乎没有进入 switch 语句。我不确定为什么。

我添加了 print_r($parts)在 A 行打印 $parts 的值。

php code:


<?php
    if (!empty($_POST['id']))
    {
    for($i=0; $i <count($mp4_files); $i++) {
    if($i == $_POST['id']) {
    $f = $mp4_files[$i];
    $parts = pathinfo($f);
    print_r($parts);                    // Line A
    switch ($parts['extension'])
    {
    echo "Hello World";                 // Line B
    case 'mp4' :
    $filePath = $src_dir . DS . $f;
    system('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination_dir . DS . $parts['filename'] . '.mp3', $result);
    }
    }
    }
    }
?>

Output (Line#A):


Array 
(
    [dirname]  => .
    [basename] => hello.mp4
    [extension] => mp4
    [filename] => hello
)

我用过echo "Hello World"在 B 行,但由于某些原因,它没有被打印并抛出 500 internal server error在控制台上。

问题陈述:

我想知道我应该在 php 代码中进行哪些更改,以便它进入 switch 语句。

最佳答案

错误 500 是由 echo "Hello World" 引起的在案例 mp4 之外的 B 行.

你的 switch 语句应该是这样的。

switch ($parts['extension']) {
    case 'mp4':
        echo "hello world";
        $filePath = $src_dir . DS . $f;
        system('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination_dir . DS . $parts['filename'] . '.mp3', $result);
        break;
}

关于php - 如何在 php 中使用路径信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56519616/

相关文章:

c++11 - std::pair 的 switch 语句?

c++ - C++ 中的 switch 语句

javascript - 如何从 javascript 获取所有 php 数组索引?

PHP - switch case 中 break 和 continue 的区别

php - mysql中前3个最大值的序列不正确

video - Windows 7 上的 FFmpeg,在 mp4 中为 HTML 5 视频编码视频失败

c++ - FFmpeg:为什么录制的视频质量远低于在 OpenGL 中渲染的质量

ffmpeg:处理分辨率变化的视频

Php脚本不检查mysql表中的用户名值

php - 无法使用 Yii 框架连接数据库