我正在运行nginx 1.10.3和php7.3-fpm。 我需要使用给定目录中文件的文件名填充网页上的下拉列表。 问题是php脚本中'foreach'循环中的所有内容都没有输出到Web服务器。使用php-cli时,一切都可以完美地工作。
我怀疑这与未刷新缓冲区有关,并且我已经尝试了可以在网络上找到的所有内容来尝试解决此问题。 解决这个问题的任何帮助将不胜感激!!!
这是我用于测试的index.php文件:
<!doctype html>
<html lang="en-us">>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>PHP drop-down list population test</h1>
<?php
header('X-Accel-Buffering: no');
header('Cache-Control: no-cache');
header('Content-Encoding: none');
$path = "/root/Music/";
$flist = glob($path . "*.wav");
echo("<form>\n");
echo("<select name=\"music\">\n");
foreach($flist as $fname) {
$info = pathinfo($fname);
$fn = $info['filename'];
if($idx == 0)
echo("<option value=\"$fname\" selected>$fn</option>\n");
else
echo("<option value=\"$fname\">$fn</option>\n");
$idx++;
}
ob_end_flush();
flush();
echo("</select>\n");
echo("</form>\n");
?>
</body>
</html>
以下是我使用curl获得的输出:
<!doctype html>
<html lang="en-us">>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>PHP drop-down list population test</h1>
<form>
<select name="music">
</select>
</form>
</body>
</html>
这是我期望得到的:
<!doctype html>
<html lang="en-us">>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>PHP drop-down list population test</h1>
<form>
<select name="music">
<option value="/root/Music/church-chime.wav" selected>church-chime</option>
<option value="/root/Music/dixie-horn.wav">dixie-horn</option>
<option value="/root/Music/evacuate-alarm.wav">evacuate-alarm</option>
</select>
</form>
</body>
</html>
答案 0 :(得分:0)
lbu-谢谢! 通常,最简单的事情会使您无法完成(Doh!)。 问题确实是目录的权限不足。
所有已修复,现在可以正常工作。
我们可以认为这个问题已经回答!