我有一个页面,我想在其中列出用户已上传的所有文档,并希望从列出的每个项目中删除扩展名。
此列表将包含潜在无限的文件类型,因此我使用的手动指定扩展名并将其替换为空的方法将花费太长时间。
我还尝试对 .*
执行 str_replace
,以便替换 .
之后的任何内容,但这似乎不起作用.
这是我所拥有的:
<?php
$chkdir = is_dir("/secure/user uploads/".$_SESSION['SESS_MEMBER_ID']."");
$path = "$chkdir/";
foreach (glob("$path*") as $filename) {
$result = str_replace("$path","", $filename);
$result = str_replace(".pdf","", $result);
$result = str_replace(".db","", $result);
echo "<li><a href='" . $filename ."'/>". $result . "</a></li><tr>";
}
?>
您可以在接近尾声时看到我指定了 PDF 和 DB 作为要删除的文件扩展名,但我想尝试更通用的方法,并删除所有文件扩展名。
有人可以提供建议吗?
最佳答案
您可以使用pathinfo() .
来自 PHP 手册示例:
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['filename']; // lib.inc
适用于您的情况:
foreach (glob("$path*") as $filename) {
$path_parts = pathinfo($filename);
$result = $path_parts['filename'];
echo "<li><a href='" . $filename ."'/>". $result . "</a></li><tr>";
}
关于php - 使用 glob 进行回显时使用 str_replace 删除扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579049/