php echo file url并从结果中删除dash和.php

时间:2013-01-17 23:13:22

标签: php arrays strip

我有一个PHP脚本,它将回显文件夹中的文件列表,并在我的页面上随机显示。

目前它显示文件的网址,例如:what-c​​an-cause-tooth-decay.php

Qusetion:有没有办法从结果中删除破折号和.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 个答案:

答案 0 :(得分:1)

问题是双重的:

  1. 从文件中删除扩展程序
  2. 用空格替换短划线。
  3. 以下内容适用于您:

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

    另请参阅:strtr() pathinfo()

    <强>更新

    从另一个回答我收集到你还希望选择一组随机的10个文件来显示;以下代码应该只是这样:

    foreach(array_slice($fileTab, 0, 10) as $file) {
    

答案 1 :(得分:0)

这是你要找的吗?

$str = 'what-can-cause-tooth-decay.php';
$str = str_replace('.php', '', str_replace('-', ' ', $str));
echo $str;
//what can cause tooth decay

答案 2 :(得分: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?>

答案 3 :(得分: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)