0

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

1
  • 1
    What's wrong with what you have there? Seems like a good start... Commented Sep 26, 2018 at 15:34

1 Answer 1

1

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.