3

2 つのフォルダー画像と写真付きの大きな画像があります。

次のような 2 つの属性を持つ XML ファイルを生成したいと考えています。

<images>
    <image source="images/image1" lightbox="bigimages/image1" />
    .....
</images>

私はこのようなものを持っています:

<?php

    // enter the path to the folder
    $path = "images/";


    // opendir
    $dir_handle = @opendir($path) or die("Unable to open $path");

    // table photos
    $filetypes = array("jpg", "png");

    // forming xml
    $doc = new DomDocument('1.0');


    $doc->formatOutput = true;

    // forming images

    $root = $doc->createElement('images');
    $root = $doc->appendChild($root);

    while ($file = readdir($dir_handle)) {


        $file = rawurlencode($file);

        $split = explode(".", $file);
        $ext = strtolower($split[count($split)-1]);


        if (in_array($ext, $filetypes)) {

            // additional image
            $item = $doc->createElement("image");
            $item = $root->appendChild($item);


            $file = $path.$file;

            // adding an attribute source
            $item->setAttribute('source', $file);


        }


    }




    // closure
    closedir($dir_handle);

    // Save to XML
    $doc->save("plik.xml");
    echo "plik xml wygenerowany poprawnie!!!";
?>

そして今、問題は、「bigimages」ディレクトリからの画像へのパスを含む2番目の属性を追加する方法です。

4

1 に答える 1

1

これはそれを行う必要があります:

$big_image = 'bigimages/' . basename($file);

if (file_exists($big_image)) {
    $item->setAttribute('source', $big_image);
}

参照: basename()

于 2012-12-03T23:17:56.887 に答える