0

I'm new to php and i'm facing this problem. Need some help in matching the youtube views preg_match. The below codes posted are the codes i made for the preg match but these are not working. Can anyone help me out.

      if($row['type']=="Views"){
      $data = $row['data'];
      $type = "YouTube Views";
      //INSTAGRAM
$file = @file_get_contents($data);
preg_match('/\"watch-view-count":(.*?)\,/',$file,$mfc);  
$ccnt = $mfc[1];
//INSTAGRAM
      }
       if($row['type']=="Views"){
      $data = $row['data'];
       $type = "YouTube Views";
           //Views
$file = @file_get_contents($data) or die("YouTube Offline ? :/");
preg_match('/\"watch-view-count":(.*?)\,/',$file,$mfc);               
$ccnt = $mfc[1];

$data = http://www.youtube.com/watch?v=BPmhFrwDJTo I need the preg_match to get the current count of views in the youtube video. I'm really sorry for the bad grammar.

Exceptional
  • 17
  • 2
  • 11

1 Answers1

0

Don't use regex for parsing HTML. Use a DOM Parser instead. It'll be more efficient.

In this case, you can simple use the Youtube API:

<?php
$video_ID = 'BPmhFrwDJTo';
$JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos/{$video_ID}?v=2&alt=json");
$JSON_Data = json_decode($JSON);
$views = $JSON_Data->{'entry'}->{'yt$statistics'}->{'viewCount'};
echo $views.' views';
?>

Output:

7 views
Community
  • 1
  • 1