2015-11-10 49 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"