0

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

问题: 此代码按原样工作,但我想做的是也显示文件的描述。

我在代码中的 url 中添加了 $description:

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

显示

文件名

$描述

文件名.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?>
4

2 回答 2

0

好的!

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

简单地;

// 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);
}
于 2013-01-21T00:33:36.547 回答
0

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

$result .= '<h6><a href="../folder/'.$file.'">'.$title.'</a></h6><p>'.$description.'</p><p><a href="../folder/'.$file.'">'.$file.'</a></p>';
于 2013-01-20T23:59:25.113 回答