Si vas a desplegar la imagen por medio de la etiqueta HTML img, no es necesario crear una imagen desde PHP con el contenido de un archivo ya existente, como lo que pretendes hacer ahí:
Código PHP:
<?php
header("Content-type: image/png");
$result = rand(1, 2);
$foto1 = file_get_contents('unafoto.png');
$foto2 = file_get_contents('otrafoto.png');
if ($result = "1") {
echo $foto1;
}
else{
echo $foto2;
}
?>
Código HTML:
<img src="generate.php" />
Además de que esa no es la manera de mostrar imágenes en HTML.
Apoyo lo que recomendó Nano_, con un arreglo que contenga la ruta a los archivos de las imágenes, es decir:
Código PHP:
<?php
$fotos = array();
$fotos[] = 'rutaALaFoto/unafoto.png';
$fotos[] = 'rutaALaFoto/otrafoto.png';
$indice = array_rand($fotos);
echo $fotos[$indice];
?>
Y entonces sí, en tu HTML queda bien la referencia al archivo .php:
Código HTML:
<img src="generate.php"/>
Referencia a la función array_rand: [URL="http://mx.php.net/manual/es/function.array-rand.php"]http://mx.php.net/manual/es/function.array-rand.php[/URL]