Napisano: 01 Maj 2009 14:40
Problem je u ovoj funkciji (deprecated), jer je u lokalu (LAMP) imam, a na serveru ne (tj negde je ima, negde je nema...), a alternativu
if (!function_exists('mime_content_type')) {
function mime_content_type($filename) {
$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
return $mimetype;
}
}
Ne mogu da koristim jer je posebna (PECL) ekstenzija i po defaultu nije ukljucena. Postoji li neka alternativa, koja ne koristi nijednu od ove dve f-je, kao ni exec, tako da mogu da se pouzdam u njen rad? Googlam vec 2-3 sata, ali nista
U sustini, potrebno mi je samo razlikovanje tri slucaja: video/x-flv, video/mp4 i svega ostalog (za koje mi nije bitan content-type).
Dopuna: 01 Maj 2009 18:57
Posto na netu nije bilo (ili ja nisam nasao) resanja koje zadovoljava moje potrebe, posle dremke palo mi je na pamet da analiziram sadrzinu fajlova. Ispostavilo se da tako mogu da ih razlikujem: flv na pocetku ima FLV, a mp4 ima ypmp42, a posto su mi svi ostali content-type-ovi nebitni, evo f-je:
if (!function_exists('mime_content_type')) {
function mime_content_type($file) {
$handle = @fopen($file, "r");
if ($handle) {
while (!feof($handle) and $i<=1) {
$i++;
$line[] = fgets($handle, 7);
}
fclose($handle);
}
$test[0] = preg_match('/mp4/i',$line[1]);
$test[1] = preg_match('/FLV/i',$line[0]);
if ($test[0]) {
return "video/mp4";
}
elseif ($test[1]) {
return "video/x-flv";
}
else {
return "application/octet-stream";
}
}
}
|