Pagina 1 din 1

Preluare valoare din tag html dupa id in php

Scris: Dum Mai 27, 2018
de Stefan
Salut, vreau sa preiau valoare unui tag de pe un website, am gasit un cod care ia toate valorile din input-uri. Cum as putea sa il modific ca sa ia doar valoarea de la tag-ul cu id-ul care ma intereseaza pe mine? Am incercat sa rezolv dar nu prea le am cu OOP

Cod: Selectaţi tot

<?php
function get_input_tags($html){
    $post_data = array();
     
    // a new dom object
    $dom = new DomDocument; 
     
    //load the html into the object
    $dom->loadHTML($html); 
    //discard white space
    $dom->preserveWhiteSpace = false; 
     
    //all input tags as a list
    $input_tags = $dom->getElementsByTagName('input'); 
 
    //get all rows from the table
    for ($i = 0; $i < $input_tags->length; $i++) 
    {
        if( is_object($input_tags->item($i)) )
        {
            $name = $value = '';
            $name_o = $input_tags->item($i)->attributes->getNamedItem('name');
            if(is_object($name_o))
            {
                $name = $name_o->value;
                 
                $value_o = $input_tags->item($i)->attributes->getNamedItem('value');
                if(is_object($value_o))
                {
                    $value = $input_tags->item($i)->attributes->getNamedItem('value')->value;
                }
                 
                $post_data[$name] = $value;
            }
        }
    }
     
    return $post_data;
}
 
/*
    Usage
*/
 
error_reporting(~E_WARNING);
$html = file_get_contents("https://www.google.ro");
 
echo "<pre>";
print_r(get_input_tags($html));
echo "</pre>";
?>

Preluare valoare din tag html dupa id in php

Scris: Dum Mai 27, 2018
de MarPlo
Salut,
Daca iti e de folos, functia getCntId() din codul urmator returneaza un array cu numele tag-ului si continutul elementului cu id-ul transmis dintr-un sir HTML in PHP.

Cod: Selectaţi tot

<?php
function getCntId($html, $id){
  $dom = new DomDocument; 
   
  //load the html into the object
  error_reporting(~E_WARNING); // to not output warning errors
  $dom->loadHTML($html);

  // get the element with id="$id"
  $elm = $dom->getElementById($id);

  return ['tag'=>$elm->tagName, 'cnt'=>$elm->nodeValue];
}
 
//Test
$html = file_get_contents('https://marplo.net/');

echo '<pre>';
var_export(getCntId($html, 'p_content'));
echo '</pre>';

Preluare valoare din tag html dupa id in php

Scris: Dum Mai 27, 2018
de Stefan
Multumesc mult! Dar pentru atributul "name" din input (in loc de ID) ce modificare ar trebui sa fac?

Preluare valoare din tag html dupa id in php

Scris: Lun Mai 28, 2018
de MarPlo
Poti sa foloseti metoda getAttribute() ca sa verifici elementele cu un anumit atribut.
- Daca vrei sa inveti despre PHP HTML DOM vezi documentatia de la: PHP - Document Object Model

- De exemplu, poti sa folosesti aceasta functie pentru elemente <input> cu un anumit 'name':

Cod: Selectaţi tot

//receives string $html with html code
//returns the value of the html input with name of $name
function getInpValName($html, $name){
  $re ='no val';
  $dom = new DomDocument; 
   
  //load the html into the object
  error_reporting(~E_WARNING); // to not output warning errors
  $dom->loadHTML($html);
  $elms = $dom->getElementsByTagName('input');
  foreach($elms as $elm){
    if($elm->getAttribute('name') ==$name){
      $re = $elm->getAttribute('value');
      break;
    }
  }

  return $re;
}