ScanImage71 (2)

ScanImage71 (2)



<?php

$plik = fopen('aktualności.xml•, "r");

$dane - fread(Splik, filesize{'aktualności.xml')); fclose($plik);


$xml_j>arser = xml_parser_create() } xnil_parse__into_struct.( $xral jparser, xiql j?arser_f ree (jparser); €1


$dane,


$vals, $ihdęx);


echo '<pre>'; print_r{$vals);

echó ' </pi*e>'; ?>


€1


2 Na początku, za pomocą poleceń ^|, przepisujemy całą zawartość pliku aktualności.xml do zmiennej $dane.

3 Za pomocą funkcji xml_parser_create()

40 inicjujemy tak zwany parser XML, czyli silnik przetwarzający dokumenty XML. Po wywołaniu tej funkcji zostaje zwrócony uchwyt, który zapisujemy w zmiennej $xml_parser.


4 W linii 4Ś1 wywołujemy funkcję xml_parse_into_struct(). Funkcja ta powoduje przetworzenie przez parser o uchwycie przekazanym w pierwszym argumencie danych zapisanych w argumencie drugim i stworzenie na ich podstawie tablicy, która zapamiętana zostanie w zmiennej przekazanej w trzecim argumencie. Jeśli do funkcji podamy czwarty argument, zapamiętana w nim zostanie tablica ze spisem indeksów.


5 Za pomocą funkcji xml_parser_free() Cl zwalniamy pamięć zajmowaną przez parser.

6 Aby dowiedzieć się, w jaki sposób zawartość dokumentu XML została zapisa-


1


i Dodatkowe parametry


Do parsera XM1 można przekazywać dodatkowe parametry. Dokonuje się tego za pomocą funkcji xml_parser_set_option() Na j"przykład" dodanie tt# do skryptu pokaz_aktualnosci2.php tuz po i utworzeniu parsera ^1 spowoduje pomijanie przez niego białych i znaków i nieuwzględnianie ich w generowanej tablicy. Ekspert zachę-j ca do eksperymentów z innymi opcjami, których działanie wyjaśnione j zostało na stronie ©.


xml_par8er__set_option ($xxol jpar Bor,

►    XML OPTION_SKIPJttiITE,l);


foreach ($vals as $wartosc){ if ($wartosc["tag"J-="TYTUŁ")

echo "<s,trong>". $wartosc( " value" ]. w</strćłng><br />"; if ($wartosc["tag" ]=“"TRESĆ")

echo $wartosc["value^]."<br /><br />";

- igpbkaż_airt'ualnoścl2.php


Zastępstwo dla krzemu

Naukowcy z Instytutu MTT poinformowali o rozpoczęciu prac nad opracowaniem nowej technologii produkcji układów elektronicznych.

Vista tworzy miejsca pracy

Według zapewnień Microsoftu, jednym ze

skutków wprowadzenia Visty. będzie i


na do tablicy $vals, wyświetlamy jej zawartość, posługując się funkcją print_r()

7 Po skopiowaniu plików aktualności.xml i pokaz_aktualnosdl.php na serwer WWW z obsługą PHP i uruchomieniu w prze-glądarce tego drugiego zobaczymy widok Przekonamy się więc, że za pomocą trzech funkcji obsługujących XML udało nam się w zmiennej $vals zapisać w uporządkowany sposób całą zawartość dokumentu XML. ay

(0] «> Array (

[tag] => AKTUALNOŚCI ttypej “> open [level] => I

)

[1] => Array <

[tag] => WIADOMOŚĆ [type] => open [level] -> 2 [attributes] => Array (

[WAŻNA] *> tak

)


[2] “> Array


<


[tag] •> TYTUŁ [type] => complete [level] => 3

[value] => Zastępstwo dla krzemu


Zamieniając zapis € na przykład na kod •, spowodujemy, że na stronie w przejrzysty sposób zostaną wyświetlone tytuły i treści aktualności z pliku aktualnosd.xml


Łatwiejsze przetwarzanie XML-a


Wiemy już, jak pobrać z dokumentu XML wszystkie dane i zapisać je w zmiennej tablicowej, Warto poznać również inny, w wielu wypadkach znacznie bardziej wydajny sposób wydobywania danych z dokumentu XML. Polega on na stworzeniu trzech specjalnych funkcji PHP i naka-

I <?pb_p_____________________ ___________

lxfunc”tTon"źnVcTznIk2sVart ($x^Jparier, $attr, $pararas)( j if ($attr=="WIADOMOŚĆ")<

\ if ($params["WAŻNA"tak")

echo r<span style**color:red; font-weight:bold;    ;

oloe

jjTrSci echo '<span style='Tco.lor:black; font-weight:bold; >

olse if ($attr=“;‘ZRODLO") echo 'Źródło: <etn>'; eloe if ($attr=>= "TRESC") echo '</3pan><br />';

} _

function 2nacŻnik_end($xmljparser, $attr){

if ($attr«»"ZRODLO") echo '</em><br 7><br />'; else if ($attr=a"TRESC') echo '<br />';


function znacznilc_text($xjaljparser/ $text){ echo $text;

>


7.nac2nik_8tart ', znaćznikłend')-«*£.--xp»l_setjcharacter_dota_handler {$xmljparser, 'znac2nifc_text');

$plik = fopen('aktualności.xml', "r"); €1

while($dane = fread($plik, 4096)ji

xmljparse($xialjparser, $dane, feof ($plik)) ?

>

£closó($plik);


pola2_aktLialnośd3.php


r


$xmljparser •«* xml_parser_create {); -< xml_set_element_handler($xml_parser,

xml_par8er-f r.ee ($xraljparser) ?>

zaniu parserowi wywoływanie ich automatycznie w chwili napotkania w dokumencie XML każdego znacznika otwierającego, każdego znacznika zamykającego oraz znajdującego się między tymi znacznikami tekstu. Ekspert pokaże, jak wykorzystać tę metodę operowania na dokumencie XML.

1 Podobnie, jak w wypadku poprzedniego skryptu, inicjujemy parser XML_*. Następnie wywołujemy funkcję xml_set_element_handler(). Wymaga ona trzech argumentów: pierwszy określa uchwyt do parsera, a dwa kolejne to nazwy funkcji, które zostaną wywołane w przypadku napotkania dowolnego znacznika: otwierającego oraz zamykającego.

2 Wywołujemy teraz funkcję

xml_set_character_data_handler(),

! do której przekazujemy dwa argumen-| ty. Pierwszym jest uchwyt do parsera,

| a drugim nazwa funkcji, która zostanie wywoływana w przypadku napotkania i zwykłego tekstu znajdującego się po-; między znacznikiem otwierającym i za-i mykającym.

3 Następnie otwieramy dokument XML «Śi w pętli pobierającej z niego kolejne wiersze wywołujemy funkcję xml_parse() Uruchamia ona przetwarzanie przez parser określony pierw-

szym argumentem danych zawartych w drugim argumencie. Ostatni z argumentów okre-i śla, czy do parsera przekazano już wszystkie informacje, czy też będą jeszcze kolejne.

4 Na koniec wystarczy już tylko zdefiniować funkcje znacznik_start() znacznik_end() m i znacznik_text() m

procedurach •).

| Muszą mieć one przedstawione przez Eksper-j ta nagłówki z listą argumentów. W pierwsz i funkcji możemy korzystać z nazwy znacznika i (zapisanej w zmiennej $attr), przy napotka-| niu którego funkcja została wywołana, oraz ! tablicy z atrybutami tego znacznika (zapisa-; nej w zmiennej $params). W drugiej może-| my korzystać wyłącznie z nazwy zamykanego i znacznika (zmienna $attr), a w trzeciej tylko i ze znajdującego się między znacznikami tek-I stu (zmienna $text). Ekspert zachęca do sa-j modzielnej analizy kodu PHP tych funkcji.

5 Po uruchomieniu skryptu w przeglądarce dane z dokumentu XML zostaną wy-: świetlone w atrakcyjnej postaci •.

Zastępstwo dla krzemu    "

Naukowcy z Instytutu MTT poinformowali o rozpoczęciu prac nad opracowaniem nowej technologii produkcji układów elektronicznych. Źródło: 4press.pl

Vistn twoizy miejsca pracy Według zapewnień Microsoftu, jednym ze skutków wprowadzenia Visty, będzie stworzenie 100 tys. nowych miejsc pracy Źródło: 4press.pl

eKspert


68 LUTY 2007


Wyszukiwarka

Podobne podstrony:
O A https://rekrutacjalst.sggw.pl/rejestruj4.php Strona 1 Strona 2 Strona 3Strona 4/6
Wykorzystanie relacyjnych baz danych do zarządzania dokumentami XML-owymi Dokumenty XML -> dane r
Zadania Zadanie 7. Plik urine.txt zawiera dane dotyczące obecności kryształów oraz innych właściwośc
MANAJ, Mateusz (1987-) Programowanie w PHP : techniki pracy / Mateusz Manaj. - Dane. - Warszawa : In
ZUS RSArBŁĄD IRENA t°] Plik Widok
X © ZUS RSA: BŁĄD IRENA Plik Widok OK ^ Ogólne Dane organizacyjne Identyfikator
image001 Źródło aktualizacji: Internet ^Dysk (
image001 Net-san Plik Edycja E[ementy Moduły Dane elementów Opcje Widok Pomoc iii net WSTm 1*1-
image002 [bez nazwy]* Plik Edycja Elementy Moduły Dane elementów Opcje Widok Pomoc X *
image005 Plik Edycja Elementy Moduły Dane elementów Opcje Widok Pomoc
SpectraMagic NX - [Guma 3MJna® Plik Edycja Widok Urządzenie Dane Obiekt Narzędzia Okno Pomoc O <6
skanuj0186 (4) 198 PHP i MySQL dla każdego gdzie deskryptor określa plik otworzony za pomocą funkcji
PHP -system plików <? $file = fopen("plik.txt", "w+"); if (flock($file,
58154 ScanImage72 (2) Tworzymy prosty czytnik RSS Znamy już najważniejsze funkcje PHP związane z jęz

więcej podobnych podstron