Curs Php-mysql

getElementsByTagName()

getElementById si getElementsByTagName sunt metode ale clasei PHP DOMDocument . Aceste metode pot fi utilizate in PHP pentru a lucra cu elemente /tag-uri HTML.
- Inainte de a utiliza metodele clasei PHP DOMDocument, trebuie sa incarcati documentul HTML intr-un obiect DOMDocument, precum in acest cod:

// creaza obiectul DOMDocument
$dochtml = new DOMDocument();

// incarca continutul dintr-o pagina (sau fisier) HTML
$dochtml->loadHTMLFile('filename.html');

// SAU, incarca elementele HTML stocate intr-un sir
$strhtml = '<html><body>Tag-uri si continut.<br></body></html>';
$dochtml->loadHTML($strhtml);

- Variabila $dochtml contine un obiect in care sunt toate elementele din documentul HTML, intr-o structura ierarhica. Dupa ce e definit acest obiect, se pot aplica la el metodele clasei DOMDocument ca sa accesati elementele HTML (dupa cum puteti vedea in exemplele urmatoare).
- Este indicat sa aveti codul HTML corect format, altfel va genera erori E_WARNING daca sunt gasite tag-uri sau atribute neinchise.

Pentru a traversa un obiect PHP, se foloseste instructiunea foreach().

getElementById

Functia getElementById('ID') returneaza un obiect ce contine elementul cu ID-ul specificat, sau NULL daca elementul nu e gasit.
Aceasta functie este utila cand doriti sa preluati continutul, sau atributele dintr-un element HTML cu un anumit ID.
    - Proprietatea nodeValue se poate folosi pt a obtine continutul elementului returnat de getElementById().
    - Proprietatea tagName (sau nodeName) se poate folosi pt a obtine numele tag-ului.

Exemplu, preia numele tag-ului si continutul unui element cu un anumit ID:
<?php
$strhtml = '<!doctype html>
<html>
<head>
 <meta charset="utf-8" />
 <title>PHP getElementById, getElementsByTagName</title>
</head>
<body>
 <div id="dv1">www.MarPlo.net</div>
</body></html>';

// creaza obiectul DOMDocument si incarca HTML dintr-un sir
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);

// preia elementul cu id="dv1"
$elm = $dochtml->getElementById('dv1');

// preia numele tag-ului si continutul
$tag = $elm->tagName;
$cnt = $elm->nodeValue;

echo $tag. ' - '. $cnt;           // div - www.MarPlo.net
?>

getElementsByTagName

Functia getElementsByTagName('tag') returneaza un obiect cu toate elementele cu acelasi nume de "tag". Argumentul special '*' preia toate tag-urile.
Aceasta functie este utila cand doriti sa preluati continutul, sau atributele mai multor elemente HTML cu acelasi <tag>.
    - Metoda getAttribute('atribut') se foloseste pt a obtine valoarea unui anumit atribut.

Exemplu, preia si afiseaza ID-ul si continutul fiecarui DIV:
<?php
$strhtml = '<!doctype html>
<html>
<head>
 <meta charset="utf-8" />
 <title>PHP getElementById, getElementsByTagName</title>
</head>
<body>
 <div id="cweb">www.CoursesWeb.net</div>
 <p>Curs gratuit PHP</p>
 <div id="mp">www.MarPlo.net</div>
</body></html>';

// creaza obiectul DOMDocument si incarca HTML dintr-un sir
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);

// preia toate DIV-urile
$divs = $dochtml->getElementsByTagName('div');

// parcurge obiectul cu toate DIV-urile
foreach($divs as $div) {
  // preia si afiseaza ID-ul si continutul fiecarui DIV
  $id = $div->getAttribute('id');
  $cnt = $div->nodeValue;

  echo $id. ' - '. $cnt. '<br/>';
}
?>

Rezultat:
cweb - www.CoursesWeb.net
mp - www.MarPlo.net

- Se poate folosi /incarca doar o parte din documentul HTML.
Exemplu 2. Incarca un sir ce contine doar sectiunea BODY, retine intr-un Array continutul fiecarui paragraf (<p>) cu class="cls".
<?php
$strhtml = '<body>
 <p class="cls">Curs gratuit PHP</p>
 <p class="cls">URL: http://www.coursesweb.net</p>
 <p>Paragraph without class.</p>
 <div>www.MarPlo.net</div>
 <p class="cls">PHP getElementById si getElementsByTagName</p>
</body>';

// creaza obiectul DOMDocument si incarca HTML dintr-un sir
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);

// preia toate tag-urile <p>
$prgs = $dochtml->getElementsByTagName('p');
$pcls = array();

// parcurge obiectul cu toate paragrafele
foreach($prgs as $prg) {
  // daca paragraful curent are class="cls", il adauga in array-ul $pcls
  if($prg->getAttribute('class') == 'cls') {
    $pcls[] = $prg->nodeValue;
  }
}

// afiseaza array-ul $pcls
print_r($pcls);

// Array ([0] => Curs gratuit PHP [1] => URL: http://www.coursesweb.net [2] => PHP getElementById si getElementsByTagName )
?>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag defineste zona de click intr-o harta creata dintr-o imagine?
<map> <img> <area>
<img src="image.jpg" usemap="#map1">
<map name="map1">
  <area shape="rect" coords="9, 120, 56, 149" href="#">
  <area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Ce proprietate CSS indica ce sa se intample cand continutul unui element depaseste dimensiunile lui?
display overflow position
#id {
  overflow: auto;
}
Clic pe evenimentul care este declansat cand mouse-ul e deasupra unui obiect.
onclick onmouseover onmouseout
document.getElementById("id").onmouseover = function(){
  document.write("Sa ai Viata Buna");
}
Indicati variabila PHP ce contine datele adaugate in adresa URL, dupa caracterul "?".
$_SESSION $_GET $_POST
if(isset($_GET["id"])) {
  echo $_GET["id"];
}
Clic pe pronumele reflexiv care e potrivit in propozitia: "Marc is the boy ... won the prize".
who which whoever
Marc is the boy who won the prize.
- Marc e baiatul care a castigat premiul.
Clic pe pronumele reflexiv care e potrivit in propozitia: "Voy a ver al pintor de ... les hablé ayer".
que quien cuyo
Voy a ver al pintor de quien les hablé ayer.
- Ma duc sa vad pictorul despre care ti-am vorbit ieri.
getElementById si getElementsByTagName

Last accessed pages

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (259729)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (119798)
  3. Conditional IF - Exercitii si teste engleza incepatori (20118)
  4. Limba spaniola curs online incepatori si avansati (26378)
  5. Trecutul continuu - Exercitii si teste incepatori (12854)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (619)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (536)
  3. Gramatica limbii engleze - Prezentare Generala (439)
  4. Exercitii engleza - English Tests and exercises - Grammar (379)
  5. Coduri pt culori (362)