我寫了一個小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函數,用於將文件路徑/文件名信息解析爲組成碎片 –