PHP DOM şeyle Sorunu

2 Cevap php

Merhaba ben bu kod ile sorun var, ben internet üzerinde buldum ve onu test zaman bana şu errorCode verdi:

Ayrıştırma hatası: on line 52 hatası ayrıştırmak, beklenmedik $ end

İşte betik:

<?php
function walkDom($node, $level = 0)
{
$indent =";


for ($i = 0; $i nodeType != XML_TEXT_NODE)
{
         echo $indent.''.$node->nodeName.'';


          if( $node->nodeType == XML_ELEMENT_NODE )
          {
          $attributes = $node->attributes; 


              foreach($attributes as $attribute)
              {
               echo ', '.$attribute->name.'='.$attribute->value;

              }
          }


if( strlen(trim($node->childNodes->item(0)->nodeValue)) > 0 && count($cNodes) == 1 ) {
echo ".$indent.'(contains='.$node->childNodes->item(0)->nodeValue.')'; 
}


echo ";
}



$cNodes = $node->childNodes;

if (count($cNodes) > 0)
{
      $level++ ; 
      foreach($cNodes as $cNode) {
      walkDom($cNode, $level); 
      $level = $level – 1; 
      }
}


}

$doc = new DOMDocument();
$doc->loadHTMLFile('http://www.google.se');
walkDom($doc);
?>

2 Cevap

Temel sorun bu saçmalık vardır.

Kod aslında bir hata ayıklama form XML düğümleri görüntülemek için bir biçimlendirici olması gerekiyordu gibi görünüyor. Ama irretrievably karıştırılmış olmuştur.

Eksik karakterler açıkça vardır - sonlandırılmamış dize değişmezleri, hattı "için (= 0 $ i; $ i = XML_TEXT_NODE nodeType!)" (Saçma ve iki farklı hat araya gibi görünüyor) ...

Sen ne yaptığını anlamadan rastgele kırık "internet kod" yürütmeye çalışıyor daha aslında ne yapmak istediğini söyleyerek ve kod yazma daha iyi olurdu.

Bazı kapatılmamış dize değişmezleri var gibi görünüyor.

burada:

$indent =";

ve burada:

echo ";

Bu çizgiler, muhtemelen olmalıdır:

$indent ="";

ve

echo "";

Ayrıca, bu satır:

for ($i = 0; $i nodeType != XML_TEXT_NODE)

tamamen bozuldu. Ben onlar için burada neler emin değilim. Muhtemelen $ i aslında her şey için asla kullanılmaz, çünkü bunu yapmak için geliyordu:

while( $node->nodeType != XML_TEXT_NODE )

Bu kod tüm çalışmaya gidiyor ise Genel ben biraz şüphe duyarım ..