Curs Php-mysql

hasAttribute
setAttribute
removeAttribute

Clasa PHP DOMElement contine metode care pot fi utilizate pentru: citire, setare si stergere atribute in documentul HTML incarcat in obiect DOMDocument.

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

getAttribute

Functia getAttribute('attr') returneaza valoarea atributului specificat, sau un sir gol daca atributul "attr" nu e gasit.
- Aceasta metoda poate fi aplicata la un element HTML (sau XML) dintr-un obiect DOMDocument.
    - Se poate utiliza functia getElementsByTagName('tag') pt a prelua toate elementele cu un anumit <tag>.
    - Ca sa preluati elementul cu un anumit ID, se foloseste metoda getElementById('ID').

Exemplu, obtine valoarea "href" din fiecare <a> din #menu:
<?php
// sir cu continut HTML
$strhtml = '<!doctype html>
<html>
<head>
 <meta charset="utf-8" />
 <title>PHP getAttribute</title>
</head>
<body>
 <ul id="menu">
 <li><a href="http://www.coursesweb.net/" title="Cursuri programare web">CoursesWeb.net</a></li>
 <li><a href="https://marplo.net/" title="Cursuri gratuite Jocuri Anime">MarPlo.net</a></li>
 <li><a href="http://www.php.net/" title="PHP Website">php.net</a></li>
 </ul>
</body></html>';

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

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

// obtine toate tag-urile <a> din $menu
$atgs = $menu->getElementsByTagName('a');

// parcurge obiectul cu toate <a> in $menu
foreach($atgs as $atag) {
  // afiseaza valoarea "href"
  echo $atag->getAttribute('href'). '<br/>';
}
?>

Rezultat:
http://www.coursesweb.net/
https://marplo.net/
http://www.php.net/

hasAttribute

Functia hasAttribute('attr') returneaza TRUE daca atributul transmis exista, altfel FALSE.
- Aceasta metoda e utila cand se doreste preluarea valorii unui anumit atribut, pentru a evita erorile, verifica daca acel atribut exista.
- Se poate folosi /incarca si doar o parte din documentul HTML.

Exemplu. Incarca un sir ce contine doar sectiunea BODY, afiseaza ID-ul si continutul DIV-urilor care au un atribut ID:
<?php
// sir cu continut HTML
$strhtml = '<body>
 <div id="dv1">Curs gratuit PHP-MySQL.</div>
 <div>Lucru cu atribute HTML in PHP.</div>
 <div id="did">Resurse Web Development.</div>
</body>';

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

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

// parcurge obiectul cu toate DIV-urile
foreach($divs as $div) {
  // daca $div are ID, obtine si afiseaza ID-ul si continutul
  if($div->hasAttribute('id')) {
    $id = $div->getAttribute('id');
    $cnt = $div->nodeValue;

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

Rezultat:
dv1 - Curs gratuit PHP-MySQL.
did - Resurse Web Development.

setAttribute

Functia setAttribute('attr', 'value') seteaza valoarea "value" la atributul "attr". Daca atributul nu exista, il creaza.
- Aceasta metoda e utila cand doriti sa creati un atribut intr-un tag, sau sa dati alta valoare atributului respectiv.
    - Cu metoda $doc->saveHTML() se poate adauga intr-un sir continutul dintr-un nod DOMDocument cu HTML. De obicei e necesara dupa efectuarea anumitor modificari in obiectul DOMDocument.
    - Acest cod:
$dochtml->getElementsByTagName('body')->item(0)
returneaza un nod DOMDocument cu elementul <body>. Este util daca doriti sa lucrati doar cu elementul <body> (incluzand tot continutul din el), de exemplu pt a salva intr-un sir continutul BODY.

Exemplu, seteaza class="newcls" la toate paragrafele (<p>):
<?php
$strhtml = '<!doctype html>
<html>
<head>
 <meta charset="utf-8" />
 <title>PHP setAttribute</title>
</head>
<body>
 <p class="cls">Lectii gratuite PHP-MySQL.</p>
 <p>URL: http://www.coursesweb.net/php-mysql/</p>
 <p>Resurse Web Development.</p>
</body></html>';

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

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

// parcurge obiectul cu toate paragrafele
foreach($prgs as $prg) {
  // seteaza /creaza class="newcls" la fiecare <p>
  $prg->setAttribute('class', 'newcls');
}

// obtine obiect cu elementul <body> (cu tot continutul din el)
$body = $dochtml->getElementsByTagName('body')->item(0);

// adauga continutul $body intr-un sir si-l afiseaza
$strbody = $dochtml->saveHTML($body);
echo $strbody;
?>

Rezultat:
<body>
 <p class="newcls">Lectii gratuite PHP-MySQL.</p>
 <p class="newcls">URL: http://www.coursesweb.net/php-mysql/</p>
 <p class="newcls">Resurse Web Development.</p>
</body>

removeAttribute

Functia removeAttribute('attr') sterge atributul "attr" din element. Returneaza TRUE la succes, sau FALSE in caz de esec.
Exemplu, sterge atributul "class" din fiecare tag <p> cu class="cls":
<?php
// sir cu continut HTML
$strhtml = '<body>
 <p class="cls">Lectii gratuite PHP-MySQL.</p>
 <p class="othercls">Cursuri programare web.</p>
</body>';

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

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

// parcurge obiectul cu toate paragrafele
foreach($prgs as $prg) {
  // daca elementul curent are class="cls", sterge atributul
  if($prg->hasAttribute('class') && $prg->getAttribute('class') == 'cls') {
    $prg->removeAttribute('class');
  }
}

// obtine obiect cu elementul <body> (cu tot continutul din el)
$body = $dochtml->getElementsByTagName('body')->item(0);

// adauga continutul $body intr-un sir si-l afiseaza
$strbody = $dochtml->saveHTML($body);
echo $strbody;
?>

Rezulta:
<body>
 <p>Lectii gratuite PHP-MySQL.</p>
 <p class="othercls">Cursuri programare web.</p>
</body>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a crea o caseta de adaugare text?
<form> <input> <div>
<input type="text" name="a_name" value="val" />
Ce proprietate CSS se foloseste pentru a afisa textul cu majuscule-mici?
display font-variant font-style
h3 {
  font-variant: small-caps;
}
Ce instructiune afiseaza o fereastra cu un mesaj in ea?
for() Date() alert()
var msg = "Viziteaza CoursesWeb.net";
alert(msg);
Indicati codul PHP prin care se obtine IP-ul utilizatorului.
$_SERVER["HTTP_USER_AGENT"] $_SERVER["REMOTE_ADDR"] $_GET[]
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
Cum se traduce cuvantul "actually"?
actual de fapt acum
He actually came on time.
- De fapt, el a venit la timp.
Cum se traduce expresia: "Hace buen tiempo"?
Face timp E vreme frumoasa Drum bun
Hoy hace buen tiempo.
- Astazi e vreme frumoasa.
Lucru cu atribute HTML in PHP

Last accessed pages

  1. Download carti electronice si programe pentru Limba Engleza (43370)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (268905)
  3. Interogatia (2367)
  4. Articolul din limba engleza - The article (68828)
  5. Prezentul simplu - Exercitii si teste incepatori (68318)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1568)
  2. Gramatica limbii engleze - Prezentare Generala (1262)
  3. Exercitii engleza - English Tests and exercises - Grammar (1248)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (1187)
  5. Prezentul simplu - Exercitii si teste incepatori (967)