Hledat
Přihlásit se
  • Věda a technika
  • Herní doupě
  • Tipy pro PC
  • IT Byznys
  • Mobily
  • Počítače
  • Počítače
  • Témata
  • Poradna
  • Diskuzní fórum
  • Video
  • Bazar
  • Blogy
  • MĚŘENÍ RYCHLOSTI
  • RSS
  • Facebook Twitter Google+ YouTube
  • Hardware
  • Software
  • Počítače
  • Notebooky
  • Služby na webu
  • Apple
  • Google
  • Microsoft
  • Seznam
  • Tiskové zprávy
Další témata
  • Týden Živě
  • Zprávy Živě
  • Testy
  • Pitvy
Všechna videa
Blogy Živě » O programování a všem okolo

O programování a všem okolo

Články vytvořil Jiří Hrebenar
 

Archiv rubriky „PHP“

SimpleXML - jednoduše na XML v PHP 2.díl

Jsem tu opět s povídáním o používání SimpleXML v PHP. V minulém díle jste se dozvěděli základy používání a hlavně také jakým způsobem číst jednoduše dokument XML. Dnes bychom se měli zabývat čtením smíšeného obsahu.

Pokračování příspěvku » »


11. 12. 2009 | gisat_cz | 0

SimpleXML - jednoduše na XML v PHP 1.díl

Hlavním tématem tohoto článku je pokus o jednoduchý exkurz do práce s XML. Určitě mnohokrát se Vám stalo, že jste při svém programování v PHP narazili na potřebu komunikovat se souborem v tomto formátu. Právě jednou možnou cestou je použití tzv. SimpleXML.

Pokračování příspěvku » »


8. 12. 2009 | gisat_cz | 0

Cachování dat do mezipaměti v PHP

Pokud se věnujete programování webových aplikaci formou jazyka PHP určitě jste vycítili potřebu uchovat tu a tam nějakou proměnnou  či funkci na později a v klidu ji použít. Právě touto problematikou se bude zaobírat tento článek. Pokusím se Vám nastínit základní techniku cachování do mezipaměti v PHP.

Pokračování příspěvku » »


7. 8. 2009 | gisat_cz | 0

Jak na generátor náhodných znaků v PHP

Generátor náhodných znaků je mnohdy velmi užitečným prvkem internetového programátora. Jeho princip spočívá v náhodném vytváření skupiny znaků: znaky, čísla i řetězce o předem stanoveném počtu.  K čemu takový generátor náhodných znaků vlastně je?

Jeho využití je velmi pestré. Můžeme ním například generovat uživatelská hesla nebo vytvářet podklady pro tzv. captchu. Tvorba základního generátoru znaků je velmi jednoduchá.

Popíšeme si tedy podrobný postup kódu generátoru znaků:

Vytvoříme funkci, která bude generovat náhodné znaky, jako parametr dodáme délku generovaných znaků:
function generuj_znaky($delka_hesla) {

Vytvoříme si proměnou do které uložíme všechny znaky, ze kterých chceme aby generátor generoval: $skupina_znaku = ‘abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ’;

Stanovíme si proměnou, do které vložíme vygenerované znaky
$vystup = ”;

Stanovíme si proměnou do které uložíme počet možných znaků uložených v proměné $skupina_znaku:
$pocet_znaku = strlen($skupina_znaku)-1;

For cyklem projdeme všechny znaky :
for ($i=0;$i<$delka_hesla;$i++) {

Do proměné $vystup uložíme jednotlivé vygenerované znaky:
$vystup .= $skupina_znaku[mt_rand(0,$pocet_znaku)];}

Proměnou $vystup, do které jsme uložili dané znaky nakonec ve funkci navrátíme příkazem return:
return $vystup;}
Tímto je skript pro generování náhodných znaků hotový, výslednou funkci můžete pak volat takto:

generuj_znaky(10);

bude se generovat deset náhodných znaků.


25. 7. 2009 | gisat_cz | 5

Vkládání javascriptu do PHP a naopak

Určitě jste se při svém programování setkali s problémem vkládání javascriptového kódu do PHP a naopak.  Já jsem se s tím setkal mnohokrát. Naprogramoval jsem si nějakou funkci v javascriptu a potřeboval jsem její vypsání. Tento problém není až tak těžké vyřešit. My si to ukážeme jednoduše takto:

Máme  javascriptový kód, který chceme vložit do PHP:

<script>

function zkouska(){

var promena=”Toto je pokusný text”;

document.write (promena + ” vložený do PHP”);

}

</script>

Do PHP můžeme javascriptový kód vložit jednoduše tín, že v PHP vyůíšeme javascriptový kód vypsat:

<?php

echo “<script>zkouska(); </script>”;

?>

Trošku složitější  bude vložení PHP kódu nebo funkce do javascriptu. Jisté řešení nám nabízí například staronová technika AJAXu. Díky ní můžeme jakoukoli reakci vyvolanou PHP kódem vkládat do Javascriptu a také v něm reakci pracovat a zpracovávat. Příklad by mohl vypadat takto:

Dejme tomu, že budete mít nějakou stránku a na té formulářový prvek text, prvek div s názvem divek ve kterém se zobrazí phpčkový kód, a tlačítko odeslat, když kliknete na tlačítko odeslat tak AJAX pošle asynchronní  dotaz  PHP souboru. Důelsdný popis AJAXového kódu zde uvádět nebudu. Kdo by chtěl znát detaily o AJAXu tak si může prohlédnou detailní popis v některém z mých článků o AJAXu:

PHP soubor soubor.php:

<?php

if( $_REQUEST["jmeno"]){

echo “Vaše jméno je “.$_REQUEST["jmeno"];

?>

Javascriptový soubor pomocí techniky AJAXu:

function policko(){
var XMLHttpRequestObjekt = false;
if (window.XMLHttpRequest) {
XMLHttpRequestObjekt = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObjekt = new ActiveXObject(”Microsoft.XMLHTTP”);
}
//————————————————————
var input1=document.getElementById(”textik”);
var cilovyDiv = document.getElementById(”divek”);
if(XMLHttpRequestObjekt) {
XMLHttpRequestObjekt.open(”POST”,”soubor.php”, true);
XMLHttpRequestObjekt.setRequestHeader(’Content-Type’,
‘application/x-www-form-urlencoded’);
XMLHttpRequestObjekt.onreadystatechange = function()
{
if (XMLHttpRequestObjekt.readyState == 4 &&
XMLHttpRequestObjekt.status == 200) {
var obsah=XMLHttpRequestObjekt.responseText;
cilovyDiv.innerHTML = obsah;
}}
XMLHttpRequestObjekt.send(”jmeno=”+input1.value);}}


20. 7. 2009 | gisat_cz | 0

Vytváříme anketu

S anketou se na internetu setkáte prakticky na každém kroku. Umožňuje dozvědět se mínění čtenářů na různá palčivá témata.

Jak takovou anketu vytvoříme? Existuje opět mnoho způsobů a technik, asi tou nejjednodušší je využít služeb některých opensource projektů, jedním z nich je například projekt Blueboard. Velkou nevýhodou využívání takových onlinových produktů je zejména to, že nejste stoprocentním pánem nad ovládáním takového ankety.

My si zde ukážeme jakým způsobem bychom si mohli takovou anketu vytvořit sami, a to od samých základů. Co je k tomu potřeba: no zejména základní znalosti CSS, PHP, SQL,  AJAXu a HTML kódování. Vypadá to složitější než to ve skutečnosti je.

Ještě bych dodal, že pro objemnost kódu jsem neošetřil například databázové chyby při volání. Snad Vám popis tvorby ankety bude srozumitelný, opravdu na ní není nic těžkého. Dejme se tedy do díla:

VYTVOŘÍME OBRÁZKOVÝ PODKLAD NAŠEHO ANKETNÍHO GRAFU:

V některém z grafických editorů, postačí klidně freewarový GIMP či windowsovský program Malování, si vytvoříme jednobarevný proužek o šířce 1 pixel a výšce 10 pixelů: 

VYTVOŘÍME DATABÁZI:

Vytvoříme si databázi, například v phpmyadmin. Databáze se bude jmenovat anketa a tabulka také anketa, vytvoříme tam jeden řádek kteřý se bude jmenovat velikost a bude formátu varchar o velikosti 220

VYTVOŘÍME SI HLAVNÍ STRÁNKU, NA KTERÉ BUDE ANKETA:

naskriptování této stránky skutečně není nic těžkého. Bude se skládat ze samého HTML kódu:

Do tagu head napíšeme napojení na javascriptový soubor a php soubor a případný stylový předpis:

<head>

<script src=”anketa.js”</script>

<?php include_once “anketka.php” ?>

<style type=”text/css”>
<!–
#dotaz1 {
color: #990000;
}
#graf1 {
position: absolute;
top: 82px;
left: 170px;
}
–>
</style>

</head>

Do tagu body napíšeme tělo naší ankety, bude velmi jednoduché:

<h1>ANKETA</h1>
<span id=”dotaz1″ name=”dotaz1″ onclick=”nacist_data(); return false;”>Používáte službu Twitter?</span>
<div id=”obr”><img src=”prouzek.png” id=”graf1″ name=”graf1″ width=”
<?php aktual()?>” height=”10″/></div>

Jak sami vidíte kód stránky je jednoduchý, skládá se z nadpisu, věty na kterou můžeme klikat a tím pádem hlasovat a malého obrázku představující primitivní verzi grafu.

VYTVOŘÍME ONEN JAVASCRIPTOVÝ SOUBOR anketa.js:

Tento soubor tvoří pomyslné jádro naší ankety. Myšlenka je velmi jednoduchá, jestliže uživatel zařne hlasovat, tak tak se metodou post pomocí AJAXu pošle dokumentu php, respektive souboru anketka.php proměná s názvem velikost a hodnotou deset.

Tato hodnota se bude následně v souboru anketka.php přičítat ke stavu v databázi. Blíže vysvětlovat strukturu AJAXového kódu zde nebudu, protože popis vytváření AJAXu jsem uvedl v některém z minulých článků.

Podívejme se tedy na AJAXový kód:

function nacist_data(){var XMLHttpRequestObjekt = false;if (window.XMLHttpRequest) {
XMLHttpRequestObjekt = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObjekt = new ActiveXObject(”Microsoft.XMLHTTP”);
}//————————————————————var cilovyDiv = document.getElementById(”obr”);
if(XMLHttpRequestObjekt) {
XMLHttpRequestObjekt.open(”POST”,”anketka.php”, true);
XMLHttpRequestObjekt.setRequestHeader(’Content-Type’,
‘application/x-www-form-urlencoded’);XMLHttpRequestObjekt.onreadystatechange = function()
{
if (XMLHttpRequestObjekt.readyState == 4 &&
XMLHttpRequestObjekt.status == 200) {
var obsah=XMLHttpRequestObjekt.responseText;cilovyDiv.innerHTML = obsah;
}
else{cilovyDiv.innerHTML=”NEKONALO SE”;}}XMLHttpRequestObjekt.send(”velikost=10″);
}}

VYTVOŘÍME SOUBOR anketka.php:

Kód je vysvětlen uvnitř v komenářích(šedivý text):

<?php
//napojíme se na soubor s databázovou konfigurací
include_once ‘db.php’;
//jestliže došlo k předání proměné velikost
if($_REQUEST["velikost"]){
//vytvoříme objekt k přístupu do databáze
$napoj_db=new databaze();
//tento krok je možná zbytečný
$hod=$_REQUEST["velikost"];
//jestliže došlo k napojení do databáze
if($napoj_db->napojeni()==1){
//vytvoří se nová proměná a předanou hodnotu zvýší o 10
$nova_vel=$hod+10;
//údaje zapíše do tabulky, tedy přepíše předchozí údaje
$dotaz=mysql_query(”UPDATE anketa SET velikost=’$nova_vel’”);
}
//jestliže byly údaje přepsány
if($dotaz){
$dotaz2=mysql_query(”SELECT * FROM anketa “);
$stav=mysql_num_rows($dotaz2);
//i když máme pouze jeden výskyt tak provedeme iteraci nalezených prvků
for($i=0;$i<$stav;$i++){
//výsledek uložíme do proměnné $vysledek
$vysledek=mysql_fetch_array($dotaz2);
//vypíšeme obrázek s danou šířkou uvedenou v databázi
echo “<img src=’prouzek.png’id=’graf1′name=’graf1′width=”.$vysledek[0].” height=’10′/>”;
}
}}

Tvorba souboru db.php:

Dále vytvoříme funkci pro zadání úvodní šířky do doby než začne uživatel hlasovat:

function aktual() {
//vytvoříme objekt na napojení do databáze
$napoj_db=new databaze();
//jestliže došlo k napojení do databáze
if($napoj_db->napojeni()==1){
//provedeme dotaz, vyhledáme všecjny výskyty v tabulce
$dotaz_poc=mysql_query(”SELECT * FROM anketa “);
//vytvoříme pomocnou funkci, určující počet nalezených prvků
$pocet=mysql_num_row($dotaz_poc);
//jestliže tabulka neobsahuje žádné nálezy
if($pocet<1){
//tak do tabulky vložíme úvodní hodnotu o velikosti 1
$vlozit=mysql_query(”INSERT INTO anketa (’velikost’)
VALUES (1)”);}
//jestliže tabulka obsahuje data
elseif ($pocet>0) {
//projdeme všechna data
for($i=0;$i<$stav;$i++){
//vysledek uložíme do proměnné
$vysledek=mysql_fetch_array($dotaz_poc);
//a navrátíme její hodnotu
return $vysledek[0];};
}}}?>

Dále mi ještě zbývá dovysvětlit soubor db.php:

Uživatel databáze nemá heslo , takže také do přihlášení není uvedeno.

<?php
//Vytvoříme třídu
class databaze{
private $jmeno;
//jméno uživatele
private $pocitac;
//druh počítače, tedy adresa počítače
private $db;
//název databáze
public $napoj;
//proměnná pomocí níž se napojíme na databázový stroj
//konstruktor třídy, ve kterém uložíme hodnoty do proměnných
public function __construct() {
$this->jmeno=”blog”;
$this->pocitac=”localhost”;
$this->db=”anketa”;}
//————————————————-
//veřejná funkce, pomocí níž se napojíme na databázový stroj a databázi
public function napojeni() {
//napojíme se na databázový stroj
@$this->napoj=mysql_connect($this->pocitac, $this->jmeno);
//napojíme se na databázi
@$this->oznac_db=mysql_select_db($this->db,$this->napoj);
//jestliže nedošlo k napojení na databází a databázový stroj, je vrácena hodnota nula
if(!$this->napoj && !$this->oznac_db){
return 0;
}
//jestliže došlo k napojení na databází a databázový stroj, je vrácena hodnota jedna
else{return 1;}
}}
?>


19. 7. 2009 | gisat_cz | 1

Čtení XML v PHP pomocí parseru

Před tím, než začnu popisovat základní principy nakládání se soubory XML v prostředí programovacího jazyka PHP, si musíme ujasnit co to vlastně soubory XML jsou.

Soubory ve formátu XML jsou v současnosti velmi hojně využívány.  Jedná se totiž o univerzální typ. Moderní technologie jsou hojně založeny na tomto formátu. Je velmi jednoduchý a přehledný. Narozdíl od HTML není tak spjatý s konvencemi, můžete vytvářet tagy podle svého. To co si nemůžete dovolit v HTML si můžete naopak dovolit  zde. XML nám umožňuje vytvářet sktrukturované dokumenty. “Sktrukturované” znamená, že budou obsahovat “značky” a “znaky”.

Existuje spoustu technik zpracování XML v jazyku PHP. My si zde ukážeme jeden z možných způsobů. Budeme číst dokument XML pomocí parseru .

První co si vytvoříme bude XML soubor:

<?xml version=”1.0″ encoding=”UTF-8″?>
<adresy stav_k=”26. červnu 2009″ typ=”obce s rozsirenou pusobnosti,obce”>
<oblast typ=”obec_s_rozsir_pusob” nazev=”AŠ” kraj=”KARLOVARSKÝ” okres=”CHEB”>
<obec nazev=”AŠ” muzi=”6638″ zeny=”6858″/>
<obec nazev=”HAZLOV” muzi=”846″ zeny=”834″/>
<obec nazev=”HRANICE” muzi=”1097″ zeny=”1168″/>
</oblast>
<oblast typ=”obec_s_rozsir_pusob” nazev=”BENEŠOV” kraj=”STŘEDOČESKÝ” okres=”BENEŠOV”>
<obec nazev=”BENEŠOV” muzi=”8011″ zeny=”8646″/>
<obec nazev=”BUKOVANY” muzi=”351″ zeny=”350″/>
</oblast>
</adresy>

XML soubory můžete vytvářet v jakémkoli editoru, například v Notepadu, Dreamweavru, či nějakém dalším. Co výše uvedený kód znamená? Postupně si projdeme jednotlivé řádky našeho kódu:

<?xml version=”1.0″ encoding=”UTF-8″?>

Tímto deklarujete dokument XML a také u něj stanovíte patřičné kódování. Stanovení kódování je velmi důležité, zařídíte tak, aby se  text zobrazoval správně. Abych byl přesný ono kódování nemusí být uvedené v dokumentu XML, ale můžeme ho uvést v onom “tajemném” parseru.

Každý XML dokument má tzv. kořenový element, zde element <adresy>, ostatní elementy jsou vloženy do těla kořenového elementu. Vytváření XML dokumentů se pokusím nastínit v některém pozdějším článku.

Vytvoření souboru zpracuj_xml.php:

Druhým krokem vytvoříte soubor zpracuj_xml.php, v něm budeme číst obsah XML dokumentu, respektive zobrazíme atribut nazev elementu obec:

Nejprve vytvoříme XML parser pomocí funkce xml_parser_create. Pokud by došlo k nějaké chybě, parser by vrátil false. Zde, jak bylo řečeno, také do  závorek funkce můžeme uvést patřičné  kódování(ISO-8859-1 nebo UTF-8).
$parser=xml_parser_create();

//—————————————————-

Vytvoříme obsluhu počátečního tagu elementu, tedy co se má po počáteční značce udělat. V našem případě zjistíme pomocí funkce PHP (pro regulární výrazy:eregi) jestli název elementu obsahuje slovo obec a pokud ano tak se vypíše hodnota jeho atributu označeného slovem název.

Funkce pro obsluhu počátečního tagu  elementu,  by měla ve svých argumentech obsahovat  na prvním místě proměnou pro paeser, dále proměnou pro jméno počátečního tagu elementu a naposled proměnou pro atributy .
function zacatek_elem($parser,$jmeno,$atributy) {
if(eregi(”obec”, $jmeno)){
echo $atributy["NAZEV"].”<br/>”;
}
}

//——————————————————

Vytvoříme obsluhu koncového tagu elementu. Možná se Vám tento krok zdá být zbytečným, ale rozhodně tomu tak není. Uvedení funkcí pro obsluhy počátečních i koncových tagů elementů musí být vždy uvedeny. Funkce pro obsluhu koncového tagu elementu by měla ve svých argumentech obsahovat ma prvním místě proměnou parseru a poté jméno koncového tagu elementu:
function konec_elem($parser,$nazev) {}

//——————————————————-

Parser bude číst tento kód a narazí na počáteční a konečný tag elementu a proto musíme tzv. zaregistrovat obslužné funkce daného elementu. Registraci provedeme pomocí funkce  xml_set_element_handler, opět jeho  parametry jsou,  proměná parseru, funkce pro obsluhu počátečního a koncového tagu elementu. Obě dvě funkce uvedeme v uvozovkách bez parametrů:
xml_set_element_handler($parser,”zacatek_elem”,”konec_elem”);

//——————————————————–

Dále nás čeká jen načíst XML soubor a umožnit tak vypsání atributů nazev elementu obec:

Otevřeme XML dokument
$nazev_souboru_xml=”acko.xml”;
Pokud nedojde k otevření dokumentu vypíše se varovná hláška
if(!($soubor = fopen($nazev_souboru_xml,”r”))) {
die(”Nelze otevřít soubor “.$nazev_souboru_xml.”!”);
}
else {

A pak budeme predavat data parseru (treba po 4096 bytech):
while ($d = fread($soubor, 4096)) {
if(!xml_parse($parser, $d, feof($soubor))) {
die(”Chyba XML”);
}}}

//————————————————-

Pokud jste vše dělali správně, výsledek by měl vypadat takto: pod sebou napsány jména měst uvedených v atributech název elementu obec.


17. 7. 2009 | gisat_cz | 0


Aktuální články a bleskovky

Lenovo uvádí nové ThinkPady s čipy Ivy Bridge
Lenovo uvádí nové ThinkPady s čipy Ivy Bridge
Brýle Google Glass jsou patentované
Brýle Google Glass jsou patentované
Ifttt.com: Propojte a automatizujte svůj internet
Ifttt.com: Propojte a automatizujte svůj internet
Nejlepší programy pro práci s Wi-Fi
Nejlepší programy pro práci s Wi-Fi



O programování a všem okolo využívá WordPress MU a běží na Blog.zive.cz. Vytvořte si svůj vlastní blog
Sledování přes RSS: články a komentáře


  • Archivy

    • Duben 2012
    • Květen 2011
    • Leden 2011
    • Prosinec 2010
    • Listopad 2010
    • Říjen 2010
    • Květen 2010
    • Březen 2010
    • Únor 2010
    • Leden 2010
    • Prosinec 2009
    • Září 2009
    • Srpen 2009
    • Červenec 2009
    • Srpen 2008
  • Rubriky

    • AJAX (7)
    • Awk a sed (2)
    • CSS, HTML (3)
    • Java (3)
    • Javascript (25)
    • Javascript frameworky (4)
    • Nezařazené (11)
    • Opensource (21)
    • Ostatní (10)
    • PHP (7)
    • PHP,MySQL a APACHE (1)
    • Ruby (16)
    • Sociální sítě (15)
    • UNIX (5)
    • XML (3)
    • Zprávy (61)
  • Spřátelené blogy

    lara.111: my clever blog
  • Twitter

    • Oh miluju krásné kytky, je normální když chlap má rád kytky? :-D~~~amp~~~lt;3 Jo já vím, jsem netradiční, to jsem prostě já... http://t.co/PoghKVpG
    • Haha :-)~~~amp~~~lt;3 http://t.co/R28S4u0Z
    • http://t.co/ZPcDPjdA
    • http://t.co/byQssIuP
    • Netřeba konspiračních teorií, pokud někdo krade, je zloděj. Pokud se někdo nechá uplácet, je to křivák. S... http://t.co/UeNF8J2Q
  • Administrace

    • Přihlásit se

1210_Computer.png

Časopis Computer

  • Nakupujte v zahraničí
  • Test 7 čteček elektronických knih
  • Technologie: nové standardy digitálního vysílání
  • Přehled cloudových uložišť
  • Poradíme s výběrem kamery na dovolenou

Partnerská sekce pro IT profesionály:
Microsoft TechNet/MSDN


Video Živě

Bluetooth stojánky pro Android: Philips AS111, AS141 a AS351
Ifttt.com -- založení úkolu
Zprávy Živě - 12. května 2012
iPad docky Logitech AV Stand a Logitech Speaker Stand

další videa »






Mladá Fronta a.s. Mladá Fronta a.s.
Tiráž | Autoři | Připomínky | Odběr novinek | RSS | Textová verze
Copyright 2000–2012 Mladá fronta a.s. | Inzerce: onlinesales@mf.cz | Kontakt na redakci | Návštěvnost měří NetMonitor