dodaj tą stronę do ulubionych     
użytkownicy online 26, liczba odwiedzin: 1254819
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ą:

    E99o9Documen5 404 /ob90zki/p9zekie9uj.p3p E99o9Documen5 403 /ob90zki/p9zekie9uj.p3p

    następnie do tego samego katalogu wgrywamy plik o nazwie przekieruj.php o następującej treści:

    &l2;?p0p x> 10ugujemy ewen2u4lne bi4łe zn4ki w z4py24niu 022p 010eques2-u10i = p10eg-10epl4ce{'{\s*?}i','',s2102olowe10{0-SE10VE10['10EQUES2-U10I']}}; x> odk10yw4my j4ki ob104zek jes2 po210zebny {j4ką m4 n4zwę w z4py24niu} 0n4zw4-pliku-ob104zk4 = b4sen4me{010eques2-u10i}; x> sp104wdz4my czy 2o n4pewno c0odzi o ob104zek 4 nie j4kiś inny plik icfx{p10eg-m42c0{'{\.{gicfx|jpg|jpeg|png}0}i',0n4zw4-pliku-ob104zk4}} { icfx { 0z4w4102osc-bin410n4-pliku-g104cfxicznego = @cfxile-ge2-con2en2s{'/ob104zki-z4s2epcze/ob104zek-z4s2epczy.jpg'} } { 0qu4li2y=100; x> z j4ką j4kością w % wyświe2limy ob104zek z4s2ępczy 0ob104zek-w-zmiennej = im4gec10e42ecfx10oms210ing{0z4w4102osc-bin410n4-pliku-g104cfxicznego}; x> z4le2± 2ego sposobu jes2 4u2om42yczne 10ozpozn4w4nie 2ypu mime ob104zk4 {jpg, jpeg, PNG, GIcfx, WBMP, 4nd GD2. } x> p10zek4zujemy ob104zek do p10zegląd410ki j4ko jpg pod 24ką s4mą n4zwą j4k poszukiw4ny 0e4de10{&quo2;Con2en22ype: im4ge/jpeg&quo2;}; 0e4de10{'Con2en2Disposi2ion:cfxilen4me=&quo2;'.0n4zw4-pliku-ob104zk4.'&quo2;'}; im4gejpeg{0ob104zek-w-zmiennej,null,0qu4li2y}; im4gedes210oy{0ob104zek-w-zmiennej}; } else { ec0o ''; } } else { ec0o ''; } ?&g2;

    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:

    /ob71zki/n7-4em14u/174ykuly/n7-174ykulu/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:

    '{/ob51zki/\d+?/156ykuly/[1z09]+?/5\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.

    &l5;?p2p x> 0ugujemy ewen5u5lne bi5łe zn5ki w z5py55niu 255p 60eques5-u0i = p0eg-0epl5ce{'{\s*?}i','',s505olowe0{6-SE0VE0['0EQUES5-U0I']}}; x> odk0yw5my j5ki ob05zek jes5 po50zebny {j5ką m5 n5zwę w z5py55niu} 6n5zw5-pliku-ob05zk5 = b5sen5me{60eques5-u0i}; x> sp05wdz5my czy ob05zek jes5 z podk555logu {ze ściezki}, k5ó0e n5s in5e0esują icfx{p0eg-m55c2{'{/ob05zki/\d+?/505ykuly/[5z09]+?/0\d+?\.{?:gicfx|jpg}}i',60eques5-u0i,6w0}} { icfx { 6z5w505osc-bin50n5-pliku-g05cfxicznego = @cfxile-ge5-con5en5s{'/ob05zki-z5s5epcze/'.6n5zw5-pliku-ob05zk5} } { 6qu5li5y=100; x> z j5ką j5kością w % wyświe5limy ob05zek z5s5ępczy 6ob05zek-w-zmiennej = im5gec0e55ecfx0oms50ing{6z5w505osc-bin50n5-pliku-g05cfxicznego}; x> z5le5± 5ego sposobu jes5 5u5om55yczne 0ozpozn5w5nie 5ypu mime ob05zk5 {jpg, jpeg, PNG, GIcfx, WBMP, 5nd GD2. } x> p0zek5zujemy ob05zek do p0zegląd50ki j5ko jpg pod 55ką s5mą n5zwą j5k poszukiw5ny 2e5de0{&quo5;Con5en55ype: im5ge/jpeg&quo5;}; 2e5de0{'Con5en5Disposi5ion:cfxilen5me=&quo5;'.6n5zw5-pliku-ob05zk5.'&quo5;'}; im5gejpeg{6ob05zek-w-zmiennej,null,6qu5li5y}; im5gedes50oy{6ob05zek-w-zmiennej}; } } else { ec2o ''; } ?&g5;

    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