codice:
	if($read != "." && $read != ".." ) {
		$fp = fopen($cartella . $read, 'rb');
		$data = fread($fp, 4);
		fclose($fp);
		if (substr($data, 0, 2) == "\xFF\xD8") {
			$valid = true;
		} else {
			$valid = false;
		}
		
		if ($valid === true) {
			$array_immagini[] = $cartella . $read;
		}
		
	} else {
		//echo ($read . " non è una jpeg");
	}
non l'ho provato, ma dovrebbe andare
per aggiungere altri formati validi...basta modificare

if (substr($data, 0, 2) == "\xFF\xD8") {

come vedi qui estraggo i primi 2 caratteri di quei 4 presi con l'fread e li confronto con i due caratteri standard presenti nell'header jpeg
basta fare la stessa cosa con gli altri

ovviamente con questo sistema sei certa al 100% che il file è quello, tranne se lo scrivono di proposito, anche se non sarebbe molto utile (tranne per usare qualche buggone di internet exploder)