Na realidade a função glob() funciona como uma espécie de Windows Explorer você mostra o endereço que quer listar e ele exibe os diretórios e arquivos contidos.
Vamos ver um exemplo pratico.
<?PHP
$diretorio = "/";
$var = glob($diretorio ."*.*");
echo $var[rand(0,count($var))];
?>
neste caso eu informei que o diretório a ser lido é o mesmo onde se encontra o script. note que eu adicionei uma barra, se eu não houvesse colocado o script entenderia que deveria ser lido o diretório onde ele se encontra

(a mesma coisa com ou sem a barra)
Vamos imaginar que eu tenho o seguinte diretório
www/
|_imagens
|_arquivos
|_teste
| |_img
|_script.php
imagine que script.php seria nossa função glob e que nós queríamos listar o conteúdo da pasta "arquivos" então vamos atribuir o endereço a nossa variavel "diretório"
<?PHP
$diretorio = "arquivos/";
// o restante do script
mas aqui vem uma pegadinha. dentro de arquivos pode haver arquivos que não sejam de meu interesse exibi-los, como por exemplo arquivos PHP ou HTML, como fazer pra que estes arquivos não sejam exibidos?
Melhor ainda como dizer que eu só quero os arquivos que sejam JPG, GIF e PNG?
Você já estudou DOS? (muitas funções do PHP se baseiam neste sistema)
Se já estudou você deve se lembrar de como era feito pra listar arquivos com as extensões desejadas.
ITEM AÇÃO
* Qualquer nome
*.* Qualquer nome qualquer extensão
*.jpg Qualquer nome com extensão jpg
*.gif Qualquer nome com extensão gif
Bom deu pra entender né?
voltando ao nosso script agora que já temos noção de listagem de diretórios.
<?PHP
$diretorio = "arquivo/";
$var = glob($diretorio ."{*.gif,*.jpg,*.png}");
echo $var[rand(0,count($var))];
?>
Desta forma listaríamos apenas arquivos com extensões GIF, JPG e PNG.
Com tudo vimos que TODAS as funções que trabalham com diretórios recebem primeiramente o parâmetro "diretório" e que podemos adicionar qualquer diretório dentro do NOSSO servidor.
Fácil, não é?
fonte:
http://br.php.net/globFalopa!