I'm trying to get the value for the key poster
in the html, which is https:\/\/example.com\/avt\/test.jpg
html
<html><body>
<script>
(function(window, sabaPlayer) {
var options = JSON.parse('{"poster":"https:\/\/example.com\/avt\/test.jpg"}')
})
</script>
</body></html>
Can i do this with DOMXPath? The page has way more html but this is the specifc part i want.
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = $xpath->query("//script");
foreach($result as $node) {
}
How do i do this?
The result i want is the string https:\/\/example.com\/avt\/test.jpg
I think you can use regex
to fetch this value which will be easier.
$txt = <<<TXT
<html><body>
<script>
(function(window, sabaPlayer) {
var options = JSON.parse('{"poster":"https:\/\/example.com\/avt\/test.jpg"}')
})
</script>
</body></html>
TXT;
$matches = [];
preg_match('/JSON.parse\(\'(.*)\'\)/iu', $txt, $matches);
$parsed = json_decode($matches[1]);
Output will be an stdClass
with property poster
stdClass Object
(
[poster] => https://example.com/avt/test.jpg
)
Here is how to access the URL $parsed->poster