0

好吧,伙计们再次需要你的帮助,

以前你们都给我介绍过灯箱,经过一些调整后效果很好。除了在使用我的 php 代码时,似乎没有办法为图像添加标题。现在我的一个朋友向我介绍了使用 .txt 文件的数组。现在这一切都很好,但我似乎无法获得我们想出的代码来正确读取文件。目前它正在随机拉出字母“a”和字母“p”并分配它,我不知道它从哪里得到这个。

现在这是我想出的用于获取文件内容的代码。

    <?php
    // process caption file into named array

    //open the file
    $myFile = "captions.txt";
    $fh = fopen($myFile, 'r') or die("Can't open file");

    $theData = explode(fread($fh, filesize($myFile)),"\n");


    //close the file
    fclose($fh);


    //parse line by line until there is no data left.
    foreach ($theData as $item => $line) {
     $exploded = explode("=", $line);
     if (count($exploded) == 2) {
     $myFile[$exploded[0]] = $exploded[1];
     }
    }



    ?>

然后我使用自动填充我的相册的代码依次激活 lightbtox。

    <?php

                    $images = glob('*.{jpg,jpeg,png,gif}', GLOB_BRACE);

                    foreach ($images as $image) {
                        if (file_exists("./thumbs/{$image}")){
                            echo "<a href=\"{$image}\" rel=\"lightbox[gallery]\" title=\"" . $myFile[$image] . "\" style=\"margin-left:25px; margin-right:25px; margin-top:30px; display:inline-block; border:5px solid #fff;\"><img src=\"thumbs/{$image}\" alt=\"{$image}\" /></a>";
                        }
                    }


                    ?>

使用此代码不会产生错误,但无法正确读取字幕文件。

我想要做的是设置文本文件,文件名由 a = 分隔,然后是标题。

如果有人想看一下,这是我的测试页面的链接。

http://outtamymindphoto.myftp.org/images/testalbum/testpage.php

4

1 回答 1

1

您应该从修复此行开始:

$theData = explode(fread($fh, filesize($myFile)),"\n");

根据 PHP Manual ,分隔符是第一个参数。

(array explode ( string $delimiter , string $string [, int $limit ] ))

(阅读更多关于explode- http://php.net/manual/en/function.explode.php

正确的方式:

$theData = explode("\n" , fread($fh, filesize($myFile)));

您还应该尝试输出变量以定位问题。例如,用于var_dump($var)检查$vars 值。

希望我对您有所帮助,如果您需要进一步的帮助,请发表评论。

于 2012-08-06T21:50:36.267 回答