我写了一个小php脚本,它从目录中读取文件名,使用explode去除扩展名,然后在php页面上显示文件名。php爆炸问题
但由于某些原因,只要文件名包含多个单词,它只会显示文件名的第一个单词。
下面是代码,
while ($name = readdir ($handle))
{
if ($name == '.' || $name == '..')
continue; /* don't echo anything, skip to next read */
$i++;
echo '<td >';
echo '<form name="form" method="get" action="download.php">';
echo '<input type="hidden" name="file" value='.$name.' />';
$parts=explode(".",$name);
$name=$parts[0];
echo '<input type="submit" name="submit" value='.$name.' class="subbutton" /> </br></br>';
echo '</form>';
echo '</td>';
if($i==5)
{
echo '</tr>';
echo '<tr>';
$i=0;
}
}
你没有在'input'中引用'value'。 HTML将文件名中的空格作为单独的属性进行处理。 – Gareth
你不应该这样混淆你的逻辑和HTML。你应该建立一个文件数组来显示在一个单一的循环中,并且实际上用第二个循环输出结果,而不是像这样将它们合并在一起。 – meagar
检出内建的pathinfo和basename函数,用于将文件路径/文件名信息解析为组成碎片 –