Cursuri online, WebDesign, html, css, php, mysql, linux | Invata-Online.ro
IntroducereScrierea scripturilor PHP elementareTipuri de siruri si variabileVariabile si operatori PHPUtilizare formulare HTML cu PHP, $ GET si $ POSTVariabile de mediu si eroriConstante si tipuri de variabileInstructiuni conditionale if() elseInstructiuni conditionale switchInstructiuni repetitive for() si while()Utilizare matrice ArrayUtilizare Array (matrice) (2)Creare tabel HTML din ArrayUtilizarea functiilorVariabile si referinte in functiiData si Timpul in PHPLucrul cu siruri (1)Lucrul cu siruri (2)Expresii regulate, regexUtilizarea variabilelor cookieLucrul cu fisiere (1)Lucrul cu fisiere (2)Lucrul cu fisiere (3)Utilizarea cataloagelor (Directoare)Utilizarea de sesiuni PHPOptiuni pentru utilizarea caracterelor specialeNotiuni fundamentale despre bazele de date si SQL (1)Notiuni fundamentale despre bazele de date si SQL (2)Notiuni fundamentale despre bazele de date si SQL (3)PHP MySQL Introducere si Tipuri de DatePHP MySQL utilizare MySQLiPHP MySQL INSERT INTOPHP MySQL SELECT, ORDER BYSelect in doua tabele MySQLMySQL INNER JOIN, LEFT JOIN, RIGHT JOINPHP MySQL WHERE si LIKEPHP MySQL UPDATEPHP MySQL DELETEPHP PDO Introducere si Conectari la Baze de DatePHP PDO exec (INSERT, UPDATE, DELETE) MySQLPHP PDO Select, fetchPHP PDO prepare si executePHP PDO setAttribute si beginTransactionPHP Functii Anonime ClosuresTrimitere date la o adresa de e mailTrimitere e mail cu tag uri si atasamentCreare imagini cu PHPCreare PDF cu PHPCreare PDF cu PHP (2)Utilizare FTP cu PHPPHP OOP Clase si Obiecte, Metoda constructorPHP OOP metode Accesor si DestructorOOP Constante, Proprietati si Metode StaticePHP OOP Clase extinse si MostenireMetode magice get, set, call, toStringOOP Clase abstract si interfaceFunctii cu Parametri object si arrayInlantuire mai multe metode in PHP OOPPHP getElementById si getElementsByTagNameLucru cu atribute HTML in PHPDocumente XMLLucru cu XML DOMLucru cu XML SAXPHP XML SimpleXMLUtilizarea bazelor de date folosind PHPUtilizarea bazelor de date folosind PHP (2)Lucrul cu baze de date MySQL, seturi de rezultateFunctii pentru ArrayFunctii PHP matematiceFunctii pentru lucru cu functiiFunctii pentru siruri (strings)Functii pentru fisiere si directoareMySQL Alias si functiiFunctii utile pentru lucrul cu imaginiFunctii PHP clase si obiecte

Lucru cu atribute HTML in PHP

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.discant.ro/" title="Cursuri programare web">discant.ro</a></li>
 <li><a href="http://www.discant.ro/" title="Cursuri e Jocuri Anime">discant.ro</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.discant.ro/
http://www.discant.ro/
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  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 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 e PHP-MySQL.</p>
 <p>URL: http://www.discant.ro/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 e PHP-MySQL.</p>
 <p class="newcls">URL: http://www.discant.ro/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 e 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 e PHP-MySQL.</p>
 <p class="othercls">Cursuri programare web.</p>
</body>




Video indisponibil sau nu aveti acces la acest video!

Webdesign by Discant Solutions