1

フォルダーからファイルのリストをエコーし​​、ページにランダムに表示する php スクリプトがあります。

現時点では、たとえば次のようなファイルの URL が表示されます: what-c​​an-cause-tooth-decay.php

質問: ダッシュと .php を結果から削除して表示する方法はありますか:

what -c​​an-cause-tooth-decay.php の代わりに虫歯の原因となるもの

<?php 

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

ありがとう

<?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) {
        $thelist .= '<p><a href="../health/'.$file.'">'.$file.'</a></p>';
    }
}
?>
<?=$thelist?>
4

4 に答える 4

1

問題は 2 つあります。

  1. ファイルから拡張子を取り除き、
  2. ダッシュをスペースに置き換えます。

以下はあなたにとってうまくいくはずです:

$fileTab[] = strtr(pathinfo($file, PATHINFO_FILENAME), '-', ' ');

以下も参照してください。strtr() pathinfo()

アップデート

私が収集した別の回答から、表示する 10 個のファイルのランダムなセットをさらに選択したいことがわかりました。以下のコードはまさにそれを行うべきです:

foreach(array_slice($fileTab, 0, 10) as $file) {
于 2013-01-17T23:32:13.993 に答える
0

これはあなたが探しているものですか?

$str = 'what-can-cause-tooth-decay.php';
$str = str_replace('.php', '', str_replace('-', ' ', $str));
echo $str;
//what can cause tooth decay
于 2013-01-17T23:15:51.477 に答える
0
<?php 

if ($handle = opendir('health')) {
    $fileTab = array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            $fileTab[] = preg_replace('/\.php/', '', preg_replace('/-/i', ' ', $file));
        }
    }
    closedir($handle);
    shuffle($fileTab);
    foreach($fileTab as $file) {
        $thelist .= '<p><a href="../health/'.$file.'">'.$file.'</a></p>';
    }
}
?>
<?=$thelist?>
于 2013-01-17T23:16:55.420 に答える
0

あなたが試すことができます:

$string = 'what-can-cause-tooth-decay.php';
$rep = array('-','.php');
$res = str_replace($rep,' ', $string); 

var_dump($res);

出力:

string 'what can cause tooth decay ' (length=27)
于 2013-01-17T23:20:06.230 に答える