1. duben 2010
Jak zjistit rozměry Flash animace v php
Potřebujete vědět jak zjistit šířku a výšku flash animace, aby se to mohlo nějak implementovat do php scriptu? Většinou jde o použití v administraci flash her apod. Řešení je poměrně jednoduché a je v principu na jeden řádek kódu.
Používá se k tomu funkce getimagesize(), která pracuje kromě obrázků i s flashovými soubory.
list($sirka, $vyska, $typ, $attributy) = getimagesize($nazev_souboru);
Do parametru $nazev_souboru vložíme název souboru poslaný v administraci přes $_FILES, nebo uvedeme celou cestu k souboru na disku.
Návratové hodnoty:
$sirka je width parametr dané flash animace
$vyska je height parametr dane animace
$typ je typ souboru vraceny funkci getimagesize, můžete tak otestovat zda je to opravdu spracovávaný soubor opravdu Flash animace nebo něci jiného. Návratové hodnoty odpovídají takto:
1 => 'GIF',
2 => 'JPG',
3 => 'PNG',
4 => 'SWF',
5 => 'PSD',
6 => 'BMP',
7 => 'TIFF(intel byte order)',
8 => 'TIFF(motorola byte order)',
9 => 'JPC',
10 => 'JP2',
11 => 'JPX',
12 => 'JB2',
13 => 'SWC',
14 => 'IFF',
15 => 'WBMP',
16 => 'XBM'
Zde jen malá poznámka, hodně souborů SWF bude vracet hodnotu 13, tedy SWC. Jde archiv pro FLEX komponenty a kromě SWF obsahuje i XML informace. V prohlížeči se chová jako bežný Flash soubor.
$attributy záleží na použitém typu souboru, pro určení dimenze flash animace není potřeba, parametr zmiňuji jen pro úplnost. U flash souboru vrátí šířku a výšku, kterou už známe z předchozích parametrů.
Otestovat si to snadno můžete na tomto kódu
<?php
list($sirka, $vyska, $typ, $attributy) = getimagesize('/cesta_k_souboru/testovaci.swf');
echo "Sirka: ".$sirka."<br />";
echo "Vyska: ".$vyska."<br />";
echo "Typ: ".$typ."<br />";
echo "Attributy: ".$attributy."<br />";
?>
Výsledkem bude něco takového
Sirka: 600
Vyska: 400
Typ: 13
Attributy: width="600" height="400"