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];
     }
    }



    ?>

次に、画像アルバムを自動入力するコードを使用して、ligbtox を有効にします。

    <?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>";
                        }
                    }


                    ?>

このコードを使用してもエラーは発生しませんが、キャプション ファイルが正しく読み取られません。

私がやりたいのは、ファイル名を = で区切り、次にキャプションを付けてテキスト ファイルをセットアップすることです。

誰かが見たい場合は、ここに私のテストページへのリンクがあります。

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)));

また、問題を特定するために変数を出力する必要があります。たとえば、 を使用してs 値var_dump($var)を確認します。$var

さらに助けが必要な場合はコメントしてください。

于 2012-08-06T21:50:36.267 に答える