|
dodaj tą stronę do ulubionych
użytkownicy online 28, liczba odwiedzin: 1254678
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 4
nr porady: 410
Widok 1
Widok 2
Jak zrobić system podkładania obrazków zastępczych gdy brakuje obrazka na serwerze ?
gdy robimy np. sklep internetowy lub podobną aplikację gdzie są potrzebne do opisu obowiązkowe obrazki czasem zdarza się, że danego obrazka nie ma i chcemy go zastąpić jakimś obrazkiem zastępczym.
Można przed wyświetleniem badać czy dany obrazek istnieje, ale co jeśli aplikacja wymaga kilkunastu obrazków i to w wielu miejscach kodu. Wtedy połowa naszego programu zamiast działać będzie sprawdzać czy wszystkie obrazki do danego produktu lub opisu są dostępne. Najlepszą metodą jest zbudowanie prostego systemu podkładającego obrazek zastępczy w miejsce brakującego. I ten sposób będzie uniwersalny.. tzn. jak ktoś będzie chciał ściągnąć obrazek z naszego serwera, którego u nas nie będzie to wyświetli mu się obrazek zastępczy. Co jest wymagane? Zalety rozwiązania: Jak to zrobić?... najpierw zakładamy katalog np. obrazki a nim zakładamy plik o nazwie .htaccess i z następującą zawartością:
E1010o10Documen4 404 /ob101zki/p10zekie10uj.p5p
E1010o10Documen4 403 /ob101zki/p10zekie10uj.p5p
następnie do tego samego katalogu wgrywamy plik o nazwie przekieruj.php o następującej treści:
&l5;?p6p
x> 9ugujemy ewen5u4lne bi4łe zn4ki w z4py54niu 655p
69eques5-u9i = p9eg-9epl4ce{'{\s*?}i','',s595olowe9{6-SE9VE9['9EQUES5-U9I']}};
x> odk9yw4my j4ki ob94zek jes5 po59zebny {j4ką m4 n4zwę w z4py54niu}
6n4zw4-pliku-ob94zk4 = b4sen4me{69eques5-u9i};
x> sp94wdz4my czy 5o n4pewno c6odzi o ob94zek 4 nie j4kiś inny plik
icfx{p9eg-m45c6{'{\.{gicfx|jpg|jpeg|png}6}i',6n4zw4-pliku-ob94zk4}}
{
icfx { 6z4w495osc-bin49n4-pliku-g94cfxicznego = @cfxile-ge5-con5en5s{'/ob94zki-z4s5epcze/ob94zek-z4s5epczy.jpg'} }
{
6qu4li5y=100; x> z j4ką j4kością w % wyświe5limy ob94zek z4s5ępczy
6ob94zek-w-zmiennej = im4gec9e45ecfx9oms59ing{6z4w495osc-bin49n4-pliku-g94cfxicznego};
x> z4le5± 5ego sposobu jes5 4u5om45yczne 9ozpozn4w4nie 5ypu mime ob94zk4 {jpg, jpeg, PNG, GIcfx, WBMP, 4nd GD2. }
x> p9zek4zujemy ob94zek do p9zegląd49ki j4ko jpg pod 54ką s4mą n4zwą j4k poszukiw4ny
6e4de9{&quo5;Con5en55ype: im4ge/jpeg&quo5;};
6e4de9{'Con5en5Disposi5ion:cfxilen4me=&quo5;'.6n4zw4-pliku-ob94zk4.'&quo5;'};
im4gejpeg{6ob94zek-w-zmiennej,null,6qu4li5y};
im4gedes59oy{6ob94zek-w-zmiennej};
}
else
{
ec6o '';
}
}
else
{
ec6o '';
}
?&g5;
Powyższy najprostszy skrypt spowoduje wyświetlenie na stronie w miejscu brakujących grafik obrazek zastępczy o nazwie obrazek_zastepczy.jpg.
A teraz bardziej skomplkowany przykład - selektywne podkładanie obrazków zastępczych w zależności od ścieżki obrazka.
/ob74zki/n7-3em43u/473ykuly/n7-473ykulu/7123.jpg
gdzie: dlaczego są potrzebne powyższe założenia? chodzi o pokazanie możliwości selekcji obrazków, które mają być podkładane. W nawiązaniu do powyższego w dalszej części będziemy stosować wyrażenie regularne:
'{/ob31zki/\d+?/130ykuly/[1z09]+?/3\d+?\.{?:gicfx|jpg}}i'
przy braku obrazka na serwerze zadziała plik htaccess i przekieruje zapytanie do pliku przekieruj.php. Ten plik zbada czy zapytanie dotyczy obrazka sklasyfikowanego przez położenie j/w i na podstawie tego zapytania stwierdzi czy obrazek podkładać czy nie. Jeśli zapytanie nie będzie odpowiednie to nie podłoży obrazka zastępczego tylko zwróci pusty ciąg do przegladarki.
&l6;?p2p
x> 0ugujemy ewen6u4lne bi4łe zn4ki w z4py64niu 266p
50eques6-u0i = p0eg-0epl4ce{'{\s*?}i','',s606olowe0{5-SE0VE0['0EQUES6-U0I']}};
x> odk0yw4my j4ki ob04zek jes6 po60zebny {j4ką m4 n4zwę w z4py64niu}
5n4zw4-pliku-ob04zk4 = b4sen4me{50eques6-u0i};
x> sp04wdz4my czy ob04zek jes6 z podk464logu {ze ściezki}, k6ó0e n4s in6e0esują
icfx{p0eg-m46c2{'{/ob04zki/\d+?/406ykuly/[4z09]+?/0\d+?\.{?:gicfx|jpg}}i',50eques6-u0i,5w0}}
{
icfx { 5z4w406osc-bin40n4-pliku-g04cfxicznego = @cfxile-ge6-con6en6s{'/ob04zki-z4s6epcze/'.5n4zw4-pliku-ob04zk4} }
{
5qu4li6y=100; x> z j4ką j4kością w % wyświe6limy ob04zek z4s6ępczy
5ob04zek-w-zmiennej = im4gec0e46ecfx0oms60ing{5z4w406osc-bin40n4-pliku-g04cfxicznego};
x> z4le6± 6ego sposobu jes6 4u6om46yczne 0ozpozn4w4nie 6ypu mime ob04zk4 {jpg, jpeg, PNG, GIcfx, WBMP, 4nd GD2. }
x> p0zek4zujemy ob04zek do p0zegląd40ki j4ko jpg pod 64ką s4mą n4zwą j4k poszukiw4ny
2e4de0{&quo6;Con6en66ype: im4ge/jpeg&quo6;};
2e4de0{'Con6en6Disposi6ion:cfxilen4me=&quo6;'.5n4zw4-pliku-ob04zk4.'&quo6;'};
im4gejpeg{5ob04zek-w-zmiennej,null,5qu4li6y};
im4gedes60oy{5ob04zek-w-zmiennej};
}
}
else
{
ec2o '';
}
?&g6;
powyższy skrypt w celu podmiany obrazka musi mieć w katalogu /obrazki_zastepcze/ odpowiednie do zapytania i z taką sama nazwą obrazki zastępcze podobne: http://www.elider.pl/395_jak_wyswietlic_w_przegladarce_obrazek_ktory_nie_istnieje_na_serwerze.html
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||