简体   繁体   中英

Glob not giving me any results

I'm trying to use PHP's Glob to get a list of files based on a wildcard, namely the extension.

$images = glob('/content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

I know there is a file in this directory, namely: 23.png but it doesn't show in array $images. I don't have a clue why not. I've tried making the URL even more absolute (or explicit) like:

$images = glob('http://www.website.com/content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

Without result.

Could it be that Glob isn't installed properly inside PHP? Or is there another reason this doesn't give any results?

glob only works with paths on the server's file system, not URLs.

http://www.website.com/content/big/ may really be /var/www/site/content/big on the server, and that's the path you need to use.

Staring a path with a / makes glob look in your root for that folder, and I'm assuming there is no folder called /content/big/ on your server.

Try it like this (using a relative path from the server root):

$images = glob('content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

Or use an absolute path:

$images = glob('/var/www/site/content/big/'.$item['id'].'.{jpg,jpeg,png,gif}', GLOB_BRACE);

below is my implementation, single quotes did not work with the echo, but this works for me. Hope it helps!

            <ul>
                    <?php
                            foreach(glob('audio/*.mp3') as $audio){ echo "<li><a>$audio</a></li>";}
                    ?>
            </ul>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM