簡體   English   中英

json_encode中的意外輸出1

[英]Unexpected output 1 in json_encode

我一直在試圖使用打印輸出json_encode ,代碼如下:

<?  
   $lid = $_GET['last_id'];

   $sql = "SELECT * FROM tbl_posts WHERE id < $lid ORDER BY id DESC LIMIT 10";

   $result = mysqli_query($con,$sql);

   $json = include('datam.php');

   echo json_encode($json);
?>

這里是datam.php文件:

<?
$count = 0;
while($row = mysqli_fetch_array($result)) {
$id = $row['id'];
$likes = $row['likes'];
$dislikes = $row['dislikes'];
$text = $row['text'];
$text = htmlspecialchars($text);
$title = substr($text, 0, 50);
$title = preg_replace('~[^\\pL\d]+~u', '-', $title);
$title = trim($title, '-');
$title = strtolower($title);
$title = preg_replace('~[^-\w]+~', '', $title);
if(empty($title)) {
$title = "no-title";
}
$cat = $row['cat'];
$cat = strtolower($cat);
$cat = str_replace(" ","-",$cat);
$ccat = str_replace("-"," ",$cat);
$ccat = ucwords($ccat);
$by = $row['uid'];
$dt = $row['date'];
$tm = $row['time'];
$time = strtotime("$dt $tm");
$nsfw = $row['nsfw'];
if ($nsfw == 1)
$isnsfw = '<span class="nsfw">NSFW</span>';
else
$isnsfw = "";

// Time Ago

// Get OP
$suser = "SELECT * FROM tbl_users WHERE id = $by";
$muser = mysqli_query($con,$suser);
$guser = mysqli_fetch_array($muser);
$byuser = $guser['user'];
$byuser = strtolower($byuser);
$byuser = str_replace(" ","-",$byuser);
$cbyuser = str_replace("-"," ",$byuser);
$cbyuser = ucwords($cbyuser);

// WhatsApp Link
$wm = preg_replace("/\n/", "%0A", $text);

if($count == 5 && $cnsfw == 0) {
include "adapp.php";
}

echo '<div class="box" id="'.$id.'"><div class="t">Posted by <a href="/profile/'.$byuser.'">'.$cbyuser.'</a> in <a href="/cat/'.$cat.'">'.$ccat.'</a> '.ago($time).' ago</div><div class="m">'.$text.'</div><div class="m"><span class="col-3"><span class="likes">'.$likes.' Likes</span></span><span class="col-3"><span class="dislikes">'.$dislikes.' Dislikes</span></span><span class="col-3">'.$isnsfw.'</span></div><div class="b"><span class="col-5 l bbox"><img src="/img/like.png" /></span><span class="col-5 l bbox"><img src="/img/dislike.png" /></span><span class="col-5 l bbox"><a href="/msg/'.$id.'/'.$title.'"><img src="/img/comment.png" /></a></span><span class="col-5 l bbox"><a rel="nofollow" href="whatsapp://send?text=http://whatsappstatus.in/msg/'.$id.'%0A'.$wm.'"><img src="/img/whatsapp.png" /></a></span><span class="col-5 l bbox"><img src="/img/options.png" /></span></div><div class="clr"></div></div>';
$count++;
}
?>

使用這種代碼時,出現的所有輸出作為預期,但,在每個輸出結束時,有意想不到的輸出1不具有原點的源。

每次執行此代碼時,結尾都會產生意外的1,我似乎找不到它的來源。

這是示例輸出的圖片:

在此處輸入圖片說明

您可以訪問此網址是否: http://funpd.com/messages1

使用時

$json = include('datam.php');

在您的datam.php文件中,您應該return要分配給$json的數據的值$json而不是將其回顯。 datam.php中的回顯是顯示數據的代碼,1是分配給$json的值(這是datam.php頁面返回的值)。

您可以通過在子頁面中注釋掉回顯來進行測試,您應該只看到顯示的值1。

看代碼只包含此子頁面而不將值分配給$json ,這可能是最簡單的解決方案,但是您可能有理由對json編碼返回值進行編碼。

更新 :要批量處理數據,請構建數據數組。 在頂部

$output = [];

回聲之后-構建結果數組並將其添加到輸出數組...

$output[] = [$id, $byuser, $cbyuser, ...];

(您需要使用所需的所有字段來完成此操作)

最后

return $output;

這會將所有數據傳遞回調用頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM