-
IAL32.
User deleted
Questa è l'immagine incriminata: http://ial32.altervista.org/rand_img/random2.png CODICE<?php
$urlLista = 'lista.txt';
$lista = preg_split('/rn|r|n/', file_get_contents($urlLista));
$value = headerImg(immagineRandom($lista));
header($value['header']);
function aggiustaLista($lista) {
foreach($lista as $img) {
if(!preg_match('/([^s]+(.(?i)(jpg|png|gif))$)/', $img, $match)) {
unset($lista[$img]);
}
}
$nuovaLista = array_fill(0, 1, $lista);
$nuovaLista = $nuovaLista[0];
return $nuovaLista;
}
function immagineRandom($lista) {
$value = null;
$lista = aggiustaLista($lista);
$minimo = 0; #il valore minimo
$massimo = count($lista) -1; #il valore massimo, definito dal numero di elementi nell'array $lista
#sottraiamo 1, perché altrimenti avremmo un errore per il quale l'index più alto non è definito(non esiste)
if($massimo == 0) { #quando la lista è vuota
die('Non ci sono immagini nella lista'); #Facciamo vedere un messaggio di errore
} else {
$int = rand($minimo, $massimo);
$img = $lista[$int];
preg_match('/([^s]+(.(?i)(jpg|png|gif))$)/', $img, $match);
$est = $match[2];
$value = array('estensione'=>$est, 'url'=>$img);
}
return $value;
}
function headerImg($arr) {
$base = 'Content-Type: ';
$est = $arr['estensione'];
$url = $arr['url'];
$ctype = null;
$header = null;
switch($est) {
case '.gif':
$ctype = 'image/gif';
$header = $base . $ctype;
break;
case '.png':
$ctype = 'image/png';
$header = $base . $ctype;
break;
case '.jpg':
case '.jpeg':
$ctype = 'image/jpeg';
$header = $base . $ctype;
break;
}
return array('header'=>$header, 'ctype'=>$ctype, 'url'=>$url, 'est'=>$est);
}
switch($value['est']) {
case '.gif':
$immagine = imagecreatefromgif($value['url']) or die('GIF parte 1');
break;
case '.png':
$immagine = imagecreatefrompng($value['url']) or die('PNG parte 1');
break;
case '.jpg':
case '.jpeg':
$immagine = imagecreatefromjpeg($value['url']) or die('JPEG parte 1');
break;
}
imagealphablending($immagine, true) or die('imagealphablending');
imagesavealpha($immagine, true) or die('ImageSaveAlpha');
switch($value['est']) {
case '.gif':
$immagine = imagegif($immagine) or die('GIF parte 2');
break;
case '.png':
$immagine = imagepng($immagine) or die('PNG parte 2');
break;
case '.jpg':
case '.jpeg':
$immagine = imagejpeg($immagine) or die('JPEG parte 2');
break;
}
imagedestroy($immagine) or die('Image Destroy');
?>
Per chi vuole anche il syntax:
http://pastebin.com/embed_iframe.php?i=Gvsud1HE
L'errore sembra essere causato(anzi, ne sono piuttosto convinto) dall'header.
Ho aggiunto dei die() per eventualmente evidenziare gli errori...
Di solito non lavoro molto con le immagini, quindi non siate clementi e tartassatemi di insulti. -
.
La tua regexp per esplodere riga per riga il file e' scorretta(ed e' pure una soluzione molto brutta utilizzare le regexp per questo tipo di cose), anyway questa e' corretta: CODE/((\r?\n)|(\r\n?))/.