从文件中剥离扩展名

时间:2013-01-19 23:56:46

标签: php

我有一个代码可以正常工作,除了1个问题。

您可以在显示死链接的“相关文章”右侧的http://test.whatanswered.com/health/what-can-a-first-aider-do.php处看到结果。

以下是应该显示的HTML。

<p><a href="../health/name-of-the-page.php">Name of the page</a></p>

我想删除破折号和php,如上面的“页面名称”,但它也从网址中删除破折号和php。

代码是:

<?php 

if ($handle = opendir('health')) {
    $fileTab = array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $fileTab[$file] = strtr(pathinfo($file, PATHINFO_FILENAME), '-', ' '); 
        }
    }
    closedir($handle);
    shuffle($fileTab);
    foreach(array_slice($fileTab, 0, 10) as $file => $health) {
        $thelist .= '<p><a href="../health/'.$file.'">'.$health.'</a></p>';
    }
}
?>
<?=$thelist?> 

1 个答案:

答案 0 :(得分:1)

我稍微重构了你的代码 - $fileTab数组现在只存储文件名并将其转换为标题发生在显示点:

if ($handle = opendir('health')) {
    $fileTab = array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $fileTab[] = $file;
        }
    }
    closedir($handle);
    shuffle($fileTab);

    foreach(array_slice($fileTab, 0, 10) as $file) {
        $title = str_replace('-', ' ', pathinfo($file, PATHINFO_FILENAME));
        $thelist .= '<p><a href="../health/'.$file.'">'.$title.'</a></p>';
    }
}