Php 从文件名中删除扩展名并包括目录中的所有文件

Php 从文件名中删除扩展名并包括目录中的所有文件,php,foreach,dir,pathinfo,Php,Foreach,Dir,Pathinfo,我看了论坛,但没有找到我需要的。 我需要帮助从文件名中删除扩展名,包括目录中的所有文件,例如(php文件),并向您展示示例 此代码有效 $name = 'file.php'; $fileName= pathinfo($name, PATHINFO_FILENAME ); echo "Name: {$fileName}"; Results: Name: file 但是,如何在文件夹中包含多个文件的情况下获取此信息 <?php $dir = "/dir1/d

我看了论坛,但没有找到我需要的。 我需要帮助从文件名中删除扩展名,包括目录中的所有文件,例如(php文件),并向您展示示例

此代码有效

$name = 'file.php';    
$fileName= pathinfo($name, PATHINFO_FILENAME );

echo "Name: {$fileName}";

Results:

Name: file
但是,如何在文件夹中包含多个文件的情况下获取此信息

<?php          
$dir = "/dir1/dir2/dir3/dir4/";
$phpfiles = glob($dir . "*.php");

foreach ($phpfiles as $phpfile){

     echo '<li><a href="'.$phpfile.'">'.basename($phpfile,".php").'</a></li>'; 
}
output
1.php
2.php
3.php
4.php
-----------------
how to insert path info in this script so that all files are included without extensions.
?>

通过使用pathinfo函数

<?php          
$dir = "/dir1/dir2/dir3/dir4/";
$phpfiles = glob($dir . "*.php");

foreach ($phpfiles as $phpfile){
     echo '<li><a href="'.$phpfile.'">'.pathinfo($phpfile, PATHINFO_FILENAME).'</a></li>'; 
}

如果只想显示文件名,可以使用@zavg的建议(只需添加一个
)。如果要实际修改阵列以供以后使用,可以使用

$dir=“/dir1/dir2/dir3/dir4/”;
$phpfiles=glob($dir.*.php”);
//使用basename
$phpfiles=array_map(函数($f){returnbasename($f,.php”);},$phpfiles);
//或者使用pathinfo
//$phpfiles=array_map(函数($f){返回路径信息($f,路径信息_文件名);},$phpfiles);
foreach($phpfiles作为$phpfile){
回音“
  • ”; }
    你的代码对我来说运行得很好,我只会在第二个参数中添加额外的点-
    basename($phpfile,.php”)
    如果你需要修改数组
    $phpfile
    而不是在显示它时修改它,你可以使用
    $phpfiles=array\u map(函数($f){return basename($f,.php”)},$phpfiles)
    Bansi,如果他能更好地解释的话,我不太明白如何处理你写的代码。你得到的错误是什么?您使用的php版本是什么?Bansi您的代码不能很好地代表
    代码行$dir=“/dir1/dir2/dir3/dir4/”中的错误$phpfiles=glob($dir.*.php”)//使用basename错误行--$phpfiles=array_map(函数($f){returnbasename($f,.php”);},$phpfiles)//或者使用pathinfo//错误行--$phpfiles=array_map(函数($f){return pathinfo($f,pathinfo_FILENAME);},$phpfiles);foreach($phpfiles作为$phpfile){echo'
  • ';}
    在PHP5.3中引入。如果您使用的是旧版本的PHP,那么此代码将无法工作。很抱歉,我目前没有旧版本的PHP来检查此问题。使用PHP版本5.5.9,错误行--$phpfiles=array_map(函数($f){return pathinfo($f,pathinfo_FILENAME);},$phpfiles),错误行--$phpfiles=array_map(函数($f){returnbasename($f,.php”);},$phpfiles);我用
    5.4.16
    再次测试,没有得到任何错误。你能发布准确的错误消息吗。
    $dir = "/dir1/dir2/dir3/dir4/";
    $phpfiles = glob($dir . "*.php");
    //using basename
    $phpfiles=array_map(function($f){return basename($f, ".php");},$phpfiles);
    //Or Using pathinfo
    //$phpfiles=array_map(function($f){return pathinfo($f, PATHINFO_FILENAME );},$phpfiles);
    foreach ($phpfiles as $phpfile){
         echo '<li><a href="'.$dir.$phpfile.'">'.$phpfile.'</a></li>'; 
    }