За последние 24 часа нас посетили 62863 программиста и 1742 робота. Сейчас ищут 1133 программиста ...

как получить содержимое страницы DOMDocument

Тема в разделе "PHP для новичков", создана пользователем Conus, 16 фев 2019.

  1. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Здравствуйте пытаюсь понять как извлекать атрибуты и свойства из DOMDocument
    подскажите пожалуйста

    Код (Text):
    1.  
    2.  $doc = new DOMDocument();  
    3.  $doc->LoadHTML('/');
    4.    
    5.  
    6.    
    7.  
    8.     foreach(   $doc->getElementsByTagName('*') as $value)
    9.     {    
    10.        echo $value->tagName . ' <br>  ' ;  
    11.     }
    12.    
    13.    
    возвращает только теги а что внутри нет

    html
    body
    p

    Код (Text):
    1. echo var_dump( get_object_vars( $doc ) );    //  array(0) { }  ??? как это обрабатывать ?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
  3. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Вы не чего не объяснили,
    получив содержимое его нужно разобрать
    и если выводить

    только echo $value
    вместо echo $value->tagName

    получаем DOMElement который нужно разложить на HTML или строку или массив

    Object of class DOMElement could not be converted to string
     
  4. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    array_keys( get_object_vars( $doc ) ) возвращает пустой массив?
    или я чего то не понимаю
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
  6. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    извиняюсь, и что это поле мне даёт nodeValue?

    так вот я хоть представляю себе как устроен объект
    echo var_dump( $doc->getElementsByTagName('*')->item(1) );

    object(DOMElement)#7 (18) { ["tagName"]=> string(4) "body" ["schemaTypeInfo"]=> NULL ["nodeName"]=> string(4) "body" ["nodeValue"]=> string(1) "/" ["nodeType"]=> int(1) ["parentNode"]=> string(22) "(object value omitted)" ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> string(22) "(object value omitted)" ["lastChild"]=> string(22) "(object value omitted)" ["previousSibling"]=> NULL ["nextSibling"]=> NULL ["attributes"]=> string(22) "(object value omitted)" ["ownerDocument"]=> string(22) "(object value omitted)" ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> string(4) "body" ["baseURI"]=> NULL ["textContent"]=> string(1) "/"
     
  7. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    PHP:
    1. foreach(   $doc->getElementsByTagName('*') as $value)
    2.     {  
    3.        echo $value->nodeName .' = '. $value->nodeValue .' <br>  ' ;
    4.     }
     
  8. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    он мне url выводит
     
  9. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    $value->nodeValue = url