php从opendir获取描述

时间:2013-01-20 23:51:57

标签: php arrays opendir

这个php代码使用opendir()来显示文件夹中的文件数组。

问题: 这段代码按原样运行,但我想要做的是显示文件的描述。

我在代码中为网址添加了$ description:

$result .= '<h6><a href="../folder/'.$file.'">'.$title.'</a></h6><p>$description</p><p><a href="../folder/'.$file.'">'.$file.'</a></p>';

显示

文件名

$描述

文件-name.php

问题:我不知道如何调用函数来获取描述。

<?php 

if ($handle = opendir('../folder/')) {
    $fileTab = array();
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != 'index.php') {
            $fileTab[] = $file;
        }
    }
    closedir($handle);
    shuffle($fileTab);
    foreach($fileTab as $file) {
        $title = str_replace('-', ' ', pathinfo($file, PATHINFO_FILENAME));
        $result .= '<h6><a href="../folder/'.$file.'">'.$title.'</a></h6><p>$description</p><p><a href="../folder/'.$file.'">'.$file.'</a></p>';
    }
}
?>
<?=$result?>

2 个答案:

答案 0 :(得分:0)

正如qeremy所说,$描述在哪里?即使$ description在其他地方被赋值,它也永远不会显示为变量内容,因为您将字符串包含在单引号''中。如果您希望PHP将变量解析为变量值(而不是变量名称作为字符串),则需要使用双引号"",或者断开字符串并包含varibale名称,例如:

$result .= '<h6><a href="../folder/'.$file.'">'.$title.'</a></h6><p>'.$description.'</p><p><a href="../folder/'.$file.'">'.$file.'</a></p>';

答案 1 :(得分:0)

OK!

如我所见,您希望在循环中显示项目并使用标题和描述有序地编写它们。此时,我认为您需要一个集成到数据库的适当系统。

只需;

// table: items
id | title     | description
-----------------------------------
1  | Headaches | Lorem ipsum dolor... 

如果这不适合您,那么您可以这样做(但这不方便!),您可以将数据保存在文件夹目录中的.txt文件中;

// folder/headaches.txt
Headaches|||What can you do to stay healthy, your...

// php
$files = glob("folder/*.txt");
foreach ($files as $file) {
    $info = pathinfo($file);
    $filename = $info['filename'];
    $contents = file_get_contents('descriptions/'. $filename .'.txt');
    list($title, $description) = explode('|||', $contents, 2);
    $result .= sprintf('<h6><a href="../folder/%s">%s</a></h6><p>%s</p><p><a href="../folder/%s">%s</a></p>',
                            $filename, $title, $description, $filename, $filename);
}