Php 从文件名中删除扩展名并包括目录中的所有文件
我看了论坛,但没有找到我需要的。 我需要帮助从文件名中删除扩展名,包括目录中的所有文件,例如(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
$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>';
}