aşağıdaki kod {"tag":"html","children":[{"tag":"head","children":[{"tag":"title","html":"Test"}]},{"tag":"body","html":"deneme"}]} şeklinde çıktı verir. belki düzenleyip kullanabilirsin.

<?php

function html_to_obj($html) {
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    return element_to_obj($dom->documentElement);
}
function element_to_obj($element) {
    $obj = array( "tag" => $element->tagName );
    foreach ($element->attributes as $attribute) {
        $obj[$attribute->name] = $attribute->value;
    }
    foreach ($element->childNodes as $subElement) {
        if ($subElement->nodeType == XML_TEXT_NODE) {
            $obj["html"] = $subElement->wholeText;
        }
        else {
            $obj["children"][] = element_to_obj($subElement);
        }
    }
    return $obj;
}

echo json_encode ( html_to_obj('<html><head><title>Test</title></head><body>deneme</body></html>'));


?>