Riddle napisal o wymiarze obrazkow w kodzie i jak nie ladnie mozemy byc zaskoczeni jesli nie ma podanych wymiarow obrazka. Ja na swoich stronach jak nie chce recznie wpisywac wymiarow obrazka korzystam z krotkiego ale bardzo pomocnego kodu PHP.
< ?php
$obraz=”zdjecie.jpg”;
$rozm = getimagesize($obraz);
print „<img src=\”" .$obraz. „\” height=\”".$rozm[1]. „\” width=\”".$rozm[0]. ” \” alt=\”obrazek\” />”;
echo $plik;
?>
Powiązane wpisy:


Speedy (unplugged)
on kwi 15th, 2006
@ 20:51:
A ja bym z tego ułożył funkcję i bardzo by to uprościło tworzenie obrazków z wymiarami
function img($filename) {
$rozm = getimagesize($filenaem);
return ‚<img src="’ .$obraz. ‚" height="’.$rozm[1]. ‚" width="’.$rozm[0]. ‚" alt="obrazek" />’;
}
użycie:
echo ‚<p>To jest mój obrazek:’.img(‚img.jpg’).’ :).</p>’;
// btw: pojedyńcze apostrofy działają dużo szybciej niż podwójne i radzę takie stosowować.
rkm
on kwi 15th, 2006
@ 21:18:
… Rozwiazanie nie sprawdza sie przy duzych serwisach … zbyt duze obciazenie …
Speedy (unplugged)
on kwi 15th, 2006
@ 21:20:
@rkm: Rzeczywiście funkcja getimagesize() jest zasobożerna, ale zawsze można użyć cache’owania wyników i wykonać ją tylko raz dla danego obrazka.
Witia
on kwi 15th, 2006
@ 21:26:
Funkcja getimagesize pod indeksem [3] zwraca gotowy ciąg: height="yyy" width="xxx".
Nie ma więc potrzeby pisać: height="’.$rozm[1]. ‚" width="’.$rozm[0]. ‚"
Amato
on kwi 16th, 2006
@ 8:28:
a co do tego maja apostrofy? to tylko znak (char)??
rozumieme ze zakladasz @Speedy ze w tablicy znakow danego srodowiska (platformy) w ktorej przetwarzany jest kod wlasnie pojedynczy apostrof bedzie pierwszy, a jesli nie bedzie?
Pisze to dlatego, ze o ile zgodze sie z potrzeba optymalizacji aplikacji – teraz panuje tendencja do nie uwazania na rozmiary (kazdy wkoncu moze miec proc.64 + 80gb) – ale bez przesady z tym!
Tak ogolnie – dobrze radze przyjac konwencje w ktorej to dla lancuchow stosuje sie "podwojny apostrof" a dla znakow pojedynczych ‚pojedynczy’ — pozniej latwiej o przenosnosc kodu.
{o}
on kwi 16th, 2006
@ 14:05:
Amato… A ty w ogóle znasz PHP? Gdybyś znał, to byś nie chrzanił o kolejności znaków w tablicy, tylko wiedział, że w PHP podwójne cudzysłowy mają INNE ZNACZENIE, niż pojedyncze. Tekst w podwójnych jest dodatkowo parsowany – podmieniane są w nim nazwy zmiennych na wartości. Nic takiego nie dzieje się w przypadku pojedynczych, stąd teoretycznie powinny być szybsze.
Nie mam też pojęcia, o jakiej przenośności kodu mówisz. Tego terminu chyba też nie rozumiesz.
Amato
on kwi 16th, 2006
@ 14:11:
Ok, pojedynczce apostr. ok, tyle ze ja nigdy nie wstawiam $zmiennej w ciag znakow – zawsze robie jak powyzej.
A co przenosnosci kodu: to nie przypadkiem PHP wzorowane jest na C/C++, posiada elementy Perla etc.
Dzieki temu mozna tworzyc kod ktory po niewielkich modyfikacjach odpalisz pod innym parserem.
Nigdy nie zdazylo Ci sie przenosic skryptu PHP na perla i odwrotnie? Czyzby Twoja wszechwiedza siegala wylacznie PHP?;>
{o}
on kwi 16th, 2006
@ 23:05:
PHP ma składnię podobną te tego, czy owego, bo jest to wygodna składnia, a nie po to by cokolwiek gdziekolwiek przenosić.
Nie zdarzało mi się i wątpię, by mi się kiedykolwiek miało zdarzyć w przyszłości… Żadnego zaawansowanego projektu nie "odpalisz po niewielkich modyfikacjach pod innym parserem".
m4t3k
on kwi 25th, 2006
@ 21:42:
Super, teraz już będę to stosować ;)