Claro, es lo mismo, lo que cambia es que agregás el archivo que vas a imprimir a un array para que después no lo repita
El resto queda igual, no tendrías que cambiar nada.
Mirá, quedaría asi:
Código PHP:
Ver original<?php
//tal cual como lo tenías
$carpeta = ".";/*Seleccionamos el directorio a recorrer*/
$dir = opendir($carpeta);/*Abrimos el directorio*/ if ($elemento != "." && $elemento != ".." && $elemento != "_random_ads.php"){/*Descartamos los ficheros que no nos interesa*/
$directorio[] = $elemento;
}
}
//
//Acá agregamos...
//
//Si $_SESSION['campanas'] no está seteada,
//O tiene la misma cantidad de elementos que la cantidad de directorios (quiere decir que imprimió todos)...
//Le asignamos un array vacío
if (!isset($_SESSION['campanas']) || count($_SESSION['campanas']) == count($directorio)) {
$_SESSION['campanas'] = array(); }
do
{
} while (in_array($campania_aleatoria, $_SESSION['campanas']); //Repite la acción si la "campania" ya fue impresa
//Una vez que tenemos una campania que todavia fue mostrada, la agregamos al array, para que después no la repita
$_SESSION['campanas'][] = $campania_aleatoria;
//Imprime normalmente como lo tenías
echo "<iframe height='250' width='300' frameborder='0' scrolling='no' allowtransparency='true' src=".$directorio[$campania_aleatoria]." hspace='2' vspace='2' marginheight='1' marginwidth='1'></iframe>";
closedir($dir);/*Cerramos el directorio*/ ?>
Y con eso ya tendría que andar.