Developer Snippet Diary

Extract js variable value from html in PHP

<?php
$html = '
<footer class="footer text-muted">
</footer>
<script>
    const dataModel = {"application":{"applicationId":1234, /* ... */ }};
</script>
<script type="text/javascript" src="/Personal/Portal/ab.js"></script>
';

$dom = new DOMDocument();
libxml_use_internal_errors(true); // Suppress warnings for invalid HTML
$dom->loadHTML($html);
libxml_clear_errors();

// Use XPath to extract the script containing dataModel
$xpath = new DOMXPath($dom);
$dataModelScript = $xpath->query('//script[contains(text(), "dataModel")]')->item(0);

if ($dataModelScript) {
    $scriptContent = $dataModelScript->textContent;
    preg_match('/const dataModel = (\{.*\});/', $scriptContent, $matches);
    if (isset($matches[1])) {
        $dataModelJson = $matches[1];
        $dataModel = json_decode($dataModelJson, true);
        print_r($dataModel);
    }
}
?>
Posted by: R GONDAL
Email: rizikmw@gmail.com