【发布时间】:2019-10-24 10:54:09
【问题描述】:
我正在编写如下所示的 php 代码,Line#A 在该代码上打印以下数组(如下所示 php 代码)。我的代码似乎没有进入 switch 语句。我不确定为什么。
我在 A 行添加了print_r($parts),以便打印 $parts 的值。
php代码:
<?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);
}
}
}
}
?>
输出(线#A):
Array
(
[dirname] => .
[basename] => hello.mp4
[extension] => mp4
[filename] => hello
)
我在 B 行使用了echo "Hello World",但由于某些原因,它没有被打印并在控制台上抛出500 internal server error。
问题陈述:
我想知道我应该在 php 代码中进行哪些更改,以便它进入 switch 语句。
【问题讨论】:
-
出于调试目的:1 将
echo "Hello World";移动到第一个案例中,然后添加一个default案例,您将在其中打印出参数值。这将使您了解要切换的内容。 2 尝试只返回扩展名,因为这是您现在感兴趣的内容 =>$parts = pathinfo( $f, PATHINFO_EXTENSION )。这将返回一个字符串。打印字符串,然后继续。
标签: php ffmpeg switch-statement http-status-code-500 pathinfo