-1

1つの問題を除いて、動作しているコードがあります。

結果は、http://test.whatanswered.com/health/what-c​​an-a-first-aider-do.phpの右下の「関連記事」に表示されており、リンク切れが表示されています。

表示するHTMLは次のとおりです。

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

上記の「ページの名前」のようにダッシュとphpを削除したいのですが、URLからダッシュと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?> 
4

1 に答える 1

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>';
    }
}
于 2013-01-20T00:03:58.847 に答える