lolcat 1 yıl önce
ebeveyn
işleme
070f9d442b
2 değiştirilmiş dosya ile 41 ekleme ve 3 silme
  1. 28 0
      lib/fuckhtml.php
  2. 13 3
      scraper/brave.php

+ 28 - 0
lib/fuckhtml.php

@@ -381,6 +381,8 @@ class fuckhtml{
 		$json_out = null;
 		$last_char = null;
 		
+		$keyword_check = null;
+		
 		for($i=0; $i<strlen($json); $i++){
 			
 			switch($json[$i]){
@@ -396,6 +398,7 @@ class fuckhtml{
 						
 						$bracket = false;
 						$is_close_bracket = true;
+						
 					}else{
 						
 						if($bracket === false){
@@ -429,6 +432,31 @@ class fuckhtml{
 				$is_close_bracket === false
 			){
 				
+				// do keyword check
+				$keyword_check .= $json[$i];
+				
+				if(in_array($json[$i], [":", "{"])){
+					
+					$keyword_check = substr($keyword_check, 0, -1);
+					
+					if(
+						preg_match(
+							'/function|array|return/i',
+							$keyword_check
+						)
+					){
+						
+						$json_out =
+							preg_replace(
+								'/[{"]*' . preg_quote($keyword_check, "/") . '$/',
+								"",
+								$json_out
+							);
+					}
+					
+					$keyword_check = null;
+				}
+				
 				// here we know we're not iterating over a quoted string
 				switch($json[$i]){
 					

+ 13 - 3
scraper/brave.php

@@ -293,8 +293,8 @@ class brave{
 		/*
 		$handle = fopen("scraper/brave.html", "r");
 		$html = fread($handle, filesize("scraper/brave.html"));
-		fclose($handle);
-		*/
+		fclose($handle);*/
+		
 		
 		try{
 			$html =
@@ -410,10 +410,20 @@ class brave{
 			throw new Exception("Could not grep JavaScript object");
 		}
 		
+		$data =
+			rtrim(
+				preg_replace(
+					'/\(Array\(0\)\)\).*$/',
+					"",
+					$grep[1]
+				),
+				" ]"
+			) . "]";
+		
 		$data =
 			$this->fuckhtml
 			->parseJsObject(
-				$grep[1]
+				$data
 			);
 		unset($grep);