我正在编写一个php代码,如下所示,Line#A将打印以下数组(如下面的php代码所示)。我的代码似乎不在开关语句中。我不知道为什么。
我在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);
}
}
}
}
?>输出(Line#A):
Array
(
[dirname] => .
[basename] => hello.mp4
[extension] => mp4
[filename] => hello
)我在B行使用过echo "Hello World",但出于某些原因,它没有被打印出来并将500 internal server error扔到控制台上。
问题陈述:
我想知道我应该在php代码中做哪些修改,这样它才能进入switch语句。
发布于 2019-06-10 03:04:19
错误500是由B行的echo "Hello World"引起的,B行不在mp4的情况下。
你的开关语句应该是这样的。
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;
}https://stackoverflow.com/questions/56519616
复制相似问题