Autor Zpráva
witiko
Profil
Nefunguje mi tenhle kód, nevíte co s tím? Vypisuje mi to parse error.

V proměnné $souborFINAL mám uloženou koncovku souboru a chci podle koncovky vytisknout obrázek:


....


if($souborFINAL=="bmp"||$souborFINAL=="jpg"||$souborFINAL=="jpeg"||$so uborFINAL=="png"||$souborFINAL=="gif"||$souborFINAL=="tif"||$souborFIN AL=="tiff"||$souborFINAL=="tga"||$souborFINAL=="wpg"||$souborFINAL=="b mi"||$souborFINAL=="pcx"||$soubor

FINAL=="BMP"||$souborFINAL=="JPG"||$souborFINAL=="JPEG"||$souborFINAL= ="PNG"||$souborFINAL=="GIF"||$souborFINAL=="TIF"||$souborFINAL=="TIFF" ||$souborFINAL=="TGA"||$souborFINAL=="WPG"||$souborFINAL=="BMI"||$soub orFINAL=="PCX") echo

"<img src='images/image.gif' border='0'>";
else

if($souborFINAL=="avi"||$souborFINAL=="wmv"||$souborFINAL=="mpg"||$sou borFINAL=="mpeg"||$souborFINAL=="flv"||$souborFINAL=="3gp"||$souborFIN AL=="3gpp"||$souborFINAL=="mp4"||$souborFINAL=="AVI"||$souborFINAL=="W MV"||$souborFINAL=="MPG"||$souborFINAL=="MPEG"||$souborFINAL=="FLV"||$ souborFINAL=="3GP"||$souborFINAL=="3GPP"||$souborFINAL=="MP4") echo "<img src='images/video.gif' border='0'>";

else if($souborFINAL=="jar"||$souborFINAL=="exe"||$souborFINAL=="bat"||$sou borFINAL=="JAR"||$souborFINAL=="EXE"||$souborFINAL=="BAT") echo "<img src='images/program.gif' border='0'>";

else if($souborFINAL=="gz"||$souborFINAL=="7g"||$souborFINAL=="zip"||$soubo rFINAL=="gzip"||$souborFINAL=="rar"||$souborFINAL=="GZ"||$souborFINAL= ="7G"||$souborFINAL=="ZIP"||$souborFINAL=="GZIP"||$souborFINAL=="RAR") echo "<img
src='images/program.gif' border='0'>";

else if($souborFINAL=="jad"||$souborFINAL=="txt"||$souborFINAL=="inf"||$sou borFINAL=="nfo"||$souborFINAL=="text"||$souborFINAL=="ini"||$souborFIN AL=="JAD"||$souborFINAL=="TXT"||$souborFINAL=="INF"||$souborFINAL=="IN I"||$souborFINAL=="NFO"||$souborFINAL=="TEXT") echo "<img src='images/text.gif' border='0'>";

else if($souborFINAL=="doc"||$souborFINAL=="DOC") echo "<img src='images/doc.gif' border='0'>";

else if($souborFINAL=="xls"||$souborFINAL=="XLS") echo "<img src='images/xls.gif' border='0'>";

else echo "<img src='images/other.gif' border='0'>";


....
Lukáš Maixner
Profil
neodpovím přímo, jen několik poznámek:
- $so uborFINAL to se stalo až tady nebo to takhle máte ve zdroji (tu merezu)?
- podmínky odzávorkovat (($souborFINAL=="xls") || ($souborFINAL=="XLS"))
- efektivnější by byl switch
- efektivnější by bylo strtoupper($souborFINAL) a pak porovnávat jen s velkými písmeny
gaminn
Profil *
Uf, no tak tomu se říká ukázkově prasácký kód :D Myslím, že bude lepší, když to ihned předěláš do switche, ve kterém přiřadíš do proměnné $xyz hodnotu jako je název obrázku, který chceš zobrazit. Po switchi pak jen provedeš echo 'img src='images/' . $xyz . '.gif' border='0'>'. Tohle, co jsi vytvořil, je opravdu hnus a nemá cenu se jím zabývat...
tiso
Profil
1. strtoupper alebo strtolower
2. switch, alebo inarray, alebo preg_match
3. bezpečnejšie by bolo neporovnávať príponu ale zistiť typ súboru
Pilda
Profil *
Lukáš Maixner >>

Mohu se zeptat proč musí odzávorkovt podmínky? Je to tak rychlejší? Jsem v PHP začátečník...
Lukáš Maixner
Profil
Pilda
Rozhodně jsem to necpal jako nutnost, pokud tak vyznělo, chyba. IMHO je to věc štábní kultury, přehlednosti, snadnější možnost s podmínkami hýbat. Nevím, jestli je to rychlejší nebo pomalejší, možná stejné. Sám sebe nepovažuji za programátora, takže ode mě se jako začátečník neučte. :)
DoubleThink
Profil *
Vypisuje mi to parse error
Jaký? - to je nejdůležitější informace.

podmínky odzávorkovat
Jsou tam zbytečné, ale ničemu nevadí.

alebo inarray
Souhlasím

bezpečnejšie by bolo neporovnávať príponu ale zistiť typ súboru
Jakým způsobem?
tiso
Profil
DoubleThink

http://php.vrana.cz/zjisteni-typu-souboru.php
DoubleThink
Profil *
http://php.vrana.cz/zjisteni-typu-souboru.php

Ano, tušil jsem to. Problém je, že Mimetype Functions nejsou v PHP5 obsaženy, protože byly zavrženy a Fileinfo Functions tam pro změnu ještě nejsou - zatím jsou v PECL balíku, pročež na ně není možno spoléhat. Nicméně souhlasím - není spolehlivější způsob, než fulltextová analýza souboru. To ale zřejmě nebude to, co by witiko v tuto chvíli potřeboval.
tiso
Profil
DoubleThink
nehádam sa, iba som poukazoval na ďalšie riešenia...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0