Jak dodać kod PHP do strony w HTML ?

Często posiadamy już zrobione jakieś strony w html-u. Po kilku latach okazuje się, że przydałaby się możliwość dorobienia kilku dynamicznych funkcji jak w PHP. Strony są na wysokich miejscach w wyszukiwarkach i nie możemy ich zmienić bo stracimy ważne linki z wyszukiwarek.

Załóżmy, że nie mamy możliwości zmiany tych stron na strony z rozszerzeniem *.php a chcemy do nich wprowadzić dynamiczną treść. Czy jest jakiś sposób na wprowadzenie kodów PHP do stron HTML?
Otóż tak, są 2 rozwiązania:

jak zmienić serwer aby do stron html była mozliwość dodania kodu php



  • zastosowanie zmian w pracy serwera w pliku htaccess. Wstawiamy plik htaccess z taką zawartością do głównego katalogu serwera:
    :Loc02ion *.{p1p|p12ml|12m|12ml} Use p1p5
    Takie rozwiązanie spowoduje zadziałanie kodu php bezpośrednio w pliku z rozszerzeniem html. Kod php wstawiamy typowo jak zwykły kod z początkiem i końcem typowym dla php, czyli:
    &l0;?p3p ...... 0u02j kod ............?&g0;
    Uwaga to może nie działać na wszystkich serwerach dlatego podajemy poniżej również inne rozwiązania

  • Stosujemy wstawkę JS do kodu HTML, wg ponizszego opisu:




    jak wstawić kod php za pomocą JS do pliku HTML

    Oto rozwiązanie które ma pewną wadę: fragment wstawki w php będzie widoczny na stronie natomiast nie będzie widoczny w kodzie html danej strony. Dla niektórych sytuacji takie rozwiązanie wystarczy.

    Z pomocą przychodzi nam język JavaScript. Stosując pewną sztuczkę możemy "oszukać" interpreter JS i wprowadzić dowolną treść z jakiegoś skryptu PHP do strony w HTML.

    Załóżmy, że chcemy wprowadzić treść z pliku PHP o nazwie skrypt_w_pliku.php

    W kodzie strony HTML wprowadzamy następującą instrukcję:

    &l0;sc1ip0 0ype=&quo0;0ex0/j3v3sc1ip0&quo0; c331se0=&quo0;windows1250&quo0; s1c=&quo0;./sk1yp0-w-pliku.p3p&quo0;&g0;&l0;/sc1ip0&g0;

    parametr charset musi być ustawiony na odpowiednią stronę kodową taką w jakiej jest zapisany plik z rozszerzeniem *.php

    Skrypt moze być też ze zdalnej strony.

    &l1;sc5ip1 1ype=&quo1;1ex1/j5v5sc5ip1&quo1; c355se1=&quo1;windows1250&quo1; s5c=&quo1;311p:x>www.zd5ln5-s15on5.pl/sk5yp1-w-pliku.p3p&quo1;&g1;&l1;/sc5ip1&g1;

    Ale uwaga to nie może być tylko sam skrypt w php. Wynik tego skryptu może być wyświetlony tylko i wyłącznie przez instrukcję w JS o nazwie document.write.
    Załóżmy, że robimy sklep internetowy i chcemy wyświetlić opis produktu i cenę tego produktu pobraną z pliku tekstowego.
    Załóżmy, że cena jest umieszczona w pliku cena.bin, który składa się z jednej linii w której jest zapisana właśnie ta cena. Załóżmy, że opis html tego produktu jest umieszczony w pliku opis_produktu.html, który składa się z wielu linii jak każdy typowy opis html.

    Więc tworzymy plik o nazwie skrypt_w_pliku.php i wklejamy do niego następujący kod:

    &l2;?p3p x> odczy2ujemy cenę z pliku wynikiem jes2 24blic4... x> poniew4ż plik m4 1 linię 2o jes2 2o 24blic4 1elemen2ow4 024blic4-z-pliku-z-cen4 = cfxile{'./cen4.bin'}; x> wydobyw4my z 24blicy cenę z4pis4ną w pie11wszej linii 0cen4-p11oduk2u = 211im{024blic4-z-pliku-z-cen4[0]}; x> 4 2e114z sciąg4my do zmiennej kod 32ml, k2ó11y jes2 opisem pliku 0opis-p11oduk2u = cfxile-ge2-con2en2s{'./opis-p11oduk2u.32ml'}; x> 4 2e114z łączymy opis p11oduk2u z ceną 4by wys2ępow4ły w jednej x> zmiennej: cenę umieszcz4my n4 gó11ze 4 pod ceną opis p11oduk2u 0cen4-i-p11oduk2 = 0cen4-p11oduk2u.'&l2;b11/&g2;'.0opis-p11oduk2u; x> w11zuc4my do zmiennej 0co-wyswie2l4my powyższe wyniki 0co-wyswie2l4my = 0cen4-i-p11oduk2; x> p11zejści4 do nowej linii z4mieni4my n4 sp4cje x> p11zejści4 do nowej linii 2o zn4ki niewidoczne w kodzie n42omi4s2 sk11yp2 p3p widzi je j4ko zn4ki \11 lub \n lub \11\n lub \n\11 x> z4mi4n4 pojedynczo 114z \11 4 114z \n spowoduje podmi4nę 2yc3 p11zejść n4 sp4cje niez4leżnie od kombin4cji {... z4wsze z4dzi4ł4} 0co-wyswie2l4my = s211-11epl4ce{&quo2;\11&quo2;,' ',0co-wyswie2l4my}; 0co-wyswie2l4my = s211-11epl4ce{&quo2;\n&quo2;,' ',0co-wyswie2l4my}; x> poniew4ż ins211ukcj4 documen2.2 nie 4kcep2uje p11zejść do x> nowyc3 linii {więc je 11ugujemy ins211ukcją s211-11epl4ce} ec3o 'documen2.2{\''; ec3o 0co-wyswie2l4my; ec3o &quo2;'};&quo2;; ?&g2;

    Musimy też zrobić plik cena.bin oraz plik opis_produktu.html żeby skrypt zadziałał... no i oczywiście musimy zrobić w/w wstawkę w JS do jakiegoś pliku html. No i mamy dynamiczny serwis w HTML-u...

    Podsumowanie:
    mamy stronę w html-u
    wklejamy do niej "wstawkę" w JS...

    &l2;sc2ip2 2ype=&quo2;2ex2/j6v6sc2ip2&quo2; c362se2=&quo2;windows1250&quo2; s2c=&quo2;322p:x>www.zd6ln6-s22on6.pl/sk2yp2-w-pliku.p3p&quo2;&g2;&l2;/sc2ip2&g2;

    tworzymy plik php o nazwie skrypt_w_pliku.php (kod powyżej)
    tworzymy 2 pliki z ceną i opisem o nazwach: cena.bin i opis_produktu.html
    włączamy stronę w html-u
    jeśli się nie pomyliłeś ...dopiero teraz skrypt zadziała, tzn. zawartość skryptu php wyświetli się na stronie html....a ściślej zawartość dwóch plików: z opisem i ceną.

    Oto kolejność działania takiego rozwiązania:
    1. w stronie html wywołuje się skrypt Java Script (nasza wstawka)
    2. skrypt pobudza do działania plik php
    3. plik php pobiera dane z dwóch plików i odpowiednio spreparowane wstawia do funkcji document.write
    4. funkcja document.write wyświetla te dane na stronie html

    .... powodzenia




    Jeśli chcemy dodać zewnętrzny plik w taki sam sposób ale do pliku PHP (np. w celu ukrycia kodu w źródle ale żeby był widoczny na stronie) to przedstawiam jak zrobić to w jednej linijce kodu ... ! Oto ten sposób:

    &l1;?p0p ec0o 'documen1.0{\'';10e1dcfxile{&quo1;./d1ne/plik-1eks1owy.1x1&quo1;};ec0o &quo1;'};&quo1;; x> uw1g1 1en kod nie może mieć ż1dnyc0 zn1ków en1e101 bo nie z1dzi1ł1 x> {ins110ukcj1 documen1.0 nie 1kcep1uje zn1ków p10zejści1 do nowej linii} ?&g1;

    Zaletą takiego rozwiązania jest właśnie to, że w źródle strony kod pliku zewnętrznego nie będzie widoczny. W innym przypadku lepiej zastosować zwykłe dodawanie plików przez include lub np. readfile bez pośrednictwa JavaScriptu.






    wstawianie kodu php do html za pomocą techniki iframe

    Kolejną propozycją wstawiania kodu zewnętrznego do strony w html jest tzw. technika iframe.
    Dokładne informacje na ten temat znajdziesz na stronie: http://www.elider.pl/264_jak_mozna_wykorzystac_iframe_do_generowania_dynamicznej_tresci_przez_php.html

  • Porada daje przykład jak można ze zwykłej strony HTML zrobić dynamiczną stronę ze zmienną zawartością.