dodaj tą stronę do ulubionych     
użytkownicy online 28, liczba odwiedzin: 1254678
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów jezus jest królem polski wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. 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 Page copy protected against web site content infringement by Copyscape
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?

  • obrazki musza być dostępne w jednym katalogu i w podkatalogach tego katalogu o dowolnym zagłębieniu
  • należy założyć w tym katalogu (na samym szczycie) plik .htaccess, który będzie przekierowywał zapytanie http na wypadek braku obrazka do odpowiedniego pliku w php
  • plik php odczyta jakie było zapytanie http i na podstawie tego zapytania wygeneruje przez instrukcję header obrazek zastępczy

    Zalety rozwiązania:

  • nie ingerujemy w jakiekolwiek ustawienia serwera
  • nie wpływamy na obsługę błędów dla całego serwera a tylko dla wybranego katalogu
  • jeden mały skrypt zastępuje nam dziesiątki zapytań i testów w aplikacji - działa oddzielnie i niezależnie dla dowolnego zapytania http

    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.
    Wadą tego skryptu jest to że nie będzie rozróżniał wielkości ani położenia brakującego obrazka.

    Jak to działa?: jeśli brakuje pliku to plik htaccess przekierowuje zapytanie do skryptu przekieruj.php. Ten skrypt analizuje czy to jest obrazek (czy ma rozszerzenie gif, jpg, jpeg, png) i jeśli tak to podkłada obrazek zastępczy przez nagłówki header.
    Jeśli to nie obrazek to zwraca pusty ciąg znaków.

    A teraz bardziej skomplkowany przykład - selektywne podkładanie obrazków zastępczych w zależności od ścieżki obrazka.
    Przykładowo.. zakładamy, że wszystkie obrazki będą uporządkowane wg ścieżki:

    /ob74zki/n7-3em43u/473ykuly/n7-473ykulu/7123.jpg

    gdzie:

  • obrazki to główny katalog z obrazkami
  • nr_tematu to poprostu numer tematu (tylko cyfry)
  • artykuly to podkatalog w którym będą się znajdować obrazki do danego numeru artykułu
  • nr_artykułu to poprostu numer danego artykułu (i tu pozwalamy sobie stosować i cyfry i litery np. 11a lub f56 lub gh lub 89 itp)
  • r123.jpg to nazwa pliku obrazka (nazwa rozpoczyna się na r ... przykładowooto r56.gif lub r67.jpg)

    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

  • Page copy protected against web site content infringement by Copyscape

    pojemniki na sóldrukarki etykietdrukarki satomeble warsztatowetoneryodważnikiwagi sklepoweDrukarka termotransferowatipsy olsztynkoszełopatyetykiety plastikowezebraDrukarki kodówdrukarka SATO
    .
    edyta wakulińska

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | 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