2015-11-10 50 views
-1

我正在使用php將文件的目錄輸出到下拉列表中。在php中刪除文件的輸出名稱的文件擴展名

文件名和擴展名都在列表中輸出,但我只想輸出文件名。

我在選擇文件之前使用'basename',但仍輸出文件擴展名。

這裏是我到目前爲止的代碼

basename.php

<?php 
     foreach(glob(dirname(__FILE__) . '/policies/one/*') as $filename){ 
     $filename = basename($filename); 
     echo "<option value='policies/one/" . $filename . "'>".$filename."</option>"; 
    } 
?> 

希望有人能幫助

歡呼。

回答

1

這可以被用於任何類型的文件擴展名。

<?php 
    foreach(glob(dirname(__FILE__) . '/policies/one/*') as $filename){ 
    $filename = basename($filename); 
    $filename2 = substr($filename,0,strrpos($filename,".")); //To store the filename upto the last dot(.) 
    echo "<option value='policies/one/" . $filename . "'>".$filename2."</option>"; 
} 
?> 
+0

這確實刪除了擴展名,但是當我點擊該文件打開它時,它並不是因爲它不再具有擴展名 –

+0

我做了相應的更改 – Nerazzurri

+0

Thankyou,這就是我期望它的工作方式 –

0
<?php 
foreach(glob(dirname(__FILE__) . '/policies/one/*') as $filename){ 
    $filename1 = basename($filename); 
    $filename=str_replace(".php","",$filename1) 
    echo "<option value='policies/one/" . $filename1 . "'>".$filename."</option>"; 
} 
?> 
+0

這確實刪除擴展但後來當我在文件上點擊打開它,它不因爲它不再有它的擴展 –

+0

如果刪除擴展。它將如何打開@ oggle0901? –

+0

顯然我明白,但那麼填充列表文件名不能被訪問是什麼點 –

2

您可以使用pathinfo

<?php 
     foreach(glob(dirname(__FILE__) . '/policies/one/*') as $filename){ 
     $filename2 = pathinfo($filename, PATHINFO_FILENAME); 
     echo "<option value='policies/one/" . $filename . "'>".$filename2."</option>"; 
    } 
?> 
+0

這確實刪除了擴展名,但是當我點擊該文件打開它時,它並不是因爲它不再具有擴展名。 –

+0

這是正常的:您擺脫擴展名,所以文件路徑將不會完成。 –

+0

是的,我明白爲什麼發生了,但那麼填充列表的文件名無法訪問的問題是什麼 –

0

您必須事先知道擴展名才能將其刪除。從PHP

例人工

$path = "/home/httpd/html/index.php"; 
$file = basename($path);   // $file is set to "index.php" 
$file = basename($path, ".php"); // $file is set to "index"