2017-10-06 89 views
0

我試圖在PHP表中顯示JSON內容,但它不工作。我無法弄清楚我應該改變什麼。在PHP表中顯示JSON信息

這裏是我的代碼:

<html> 
<head> 
<title>Download</title> 
</head> 
<body> 
<?php 
$myData = file_get_contents("https://youtubetoany.com/@api/json/videostreams/VEou0QBeHlk"); 
$myObject = json_decode($myData); 
$myObjectMap = $myObject->vidInfo; 
?> 
<table> 
<thead> 
    <tr> 
     <td>Url</td> 
     <td>Size</td> 
     <td>Quality</td> 
     <td>Type</td> 
    </tr> 
</thead> 
<tbody> 
    <?php foreach($myObjectMap as $key => $item): ?> 
    <tr> 
     <td><?PHP echo $item->dloadUrl; ?></td> 
     <td><?PHP echo $item->rSize; ?></td> 
     <td><?PHP echo $item->round; ?></td> 
     <td><?PHP echo $item->quality; ?></td> 
     <td><?PHP echo $item->ftype; ?></td> 
    </tr> 
    <?php endforeach; ?> 
</tbody> 
</table> 

</body> 
</html>  

這是我在瀏覽器中得到:

URL大小品質類型

+1

該URL返回格式不正確的字符串,並且與JSON不兼容。使用應用程序,如郵遞員檢查內容,它會拋出'語法錯誤'。 Postman –

+0

您可以嘗試在json_decoding之前的第一個

1

我只是發現也許就是爲什麼它不工作。該鏈接返回附加到JSON底部的JavaScript。所以這是我的解決方案。

<html> 
 
<head> 
 
<title>Download</title> 
 
</head> 
 
<body> 
 
<?php 
 
$myData = file_get_contents("https://youtubetoany.com/@api/json/videostreams/VEou0QBeHlk"); 
 

 
// This up to the last occurrence of the "}" 
 
$json_block = substr($myData, 0, strripos($myData, "}")); 
 

 
$myObject = json_decode($json_block); 
 
$myObjectMap = $myObject->vidInfo; 
 
?> 
 
<table> 
 
<thead> 
 
    <tr> 
 
     <td>Url</td> 
 
     <td>Size</td> 
 
     <td>Quality</td> 
 
     <td>Type</td> 
 
    </tr> 
 
</thead> 
 
<tbody> 
 
    <?php foreach($myObjectMap as $key => $item): ?> 
 
    <tr> 
 
     <td><?PHP echo $item->dloadUrl; ?></td> 
 
     <td><?PHP echo $item->rSize; ?></td> 
 
     <td><?PHP echo $item->round; ?></td> 
 
     <td><?PHP echo $item->quality; ?></td> 
 
     <td><?PHP echo $item->ftype; ?></td> 
 
    </tr> 
 
    <?php endforeach; ?> 
 
</tbody> 
 
</table> 
 

 
</body> 
 
</html>

+0

在流末尾有一個'}'右邊:'),0,{}));'。所以我懷疑這會成功。 – Jeff

+0

更好地搜索第一個' Jeff

+0

@Jeff我打算這麼做,但是如果原始文件不再有'script'標記,那可能會引發錯誤。這在更安全的解決方案。加'strripos'使用文件上的最後一個事件。唯一的問題是如果在腳本中有一個'}'。在這種情況下,你的方式更好或正則表達式可能會發揮 –