01/10/2018, 00:57

PHP return Json Error không hiển thị

Em đang tập tành về cái Json này.
Dữ liệu là em Get từ blog của em luôn, lấy từ bảng wp_posts trong database, ai dùng WordPress thì chắc sẽ biết. Mục đích của em là cho nó trả về dạng Json những bài viết trên blog của em gồm những mục này:

Vấn đề ở đây là nếu trong sql select có post_title vs post_content 2 cái chính cần lấy thì nó lại không hiển thị Json.
php: GetPostReturnJson_notshow.php
Link test: http://dev.2dev4u.com/4u/GetPostReturnJson_notshow.php

img :

Khi không có 2 trường đó mà chỉ có những trường còn lại thì nó lại hiển thị Json.
php: GetPostReturnJson_show.php
Link test: http://dev.2dev4u.com/4u/GetPostReturnJson_show.php

img :

result: Bỏ link trên qua pro.jsonlint.com parse cho dễ nhìn
img :

Đây là cấu trúc database của bảng wp_posts
img :

Không biết lý do gì mà nó lại không ra

  • có phải do Collation trường đó kiểu text vs longtext nên nó k hiển thị
  • hay là do ngôn ngữ trong 2 trường đó là tiếng việt
  • hay là do chữ trong 2 trường đó nó nhiều quá nên không hiển thị được. Vì trong mấy trường kia em thấy toàn tiếng anh hoặc không dấu cả.
  • hay là do … lỗi định mệnh
  • hay là do e không đẹp trai…

Mấy pro giải thích giùm em với được không ạ, có cách nào giải quyết chỉ giùm em luôn.
Em cảm ơn ạ!!

viết 03:13 ngày 01/10/2018

thử select 2 cột: ID với post_title

coi có hiện ko

NTC viết 03:02 ngày 01/10/2018

Em thử rồi mà nó k hông hiện luôn anh

viết 03:03 ngày 01/10/2018

https://secure.php.net/manual/en/function.json-encode.php

json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE)

thêm mấy cái options vô coi có được ko. Có thể là phải escape unicode đó

trắng bóc như vậy chắc là encode gặp lỗi.

sau đó vô thêm link này coi, content type trả về phải là UTF-8 nữa:

<?php
header('Content-Type: text/html; charset=utf-8');
stackoverflow.com
FFish

PHP json_encode json_decode UTF-8

php, utf-8, json
asked by FFish on 10:59AM - 02 Nov 10
NTC viết 02:59 ngày 01/10/2018

ok anh… để em test thử xem sao

NTC viết 03:02 ngày 01/10/2018

Ca này khó rồi…nó trắng màn hình luôn

viết 03:13 ngày 01/10/2018

Every part of your process needs to be UTF-8 encoded.

The database connection
The database tables
Your PHP file (if you are using special characters inside that file as shown in your example above)
The content-type headers that you output

thêm dòng mysqli_set_charset($connection,"utf8"); sau khi tạo được cái $connection kia

rồi sau đó phải set header của output file nữa:
header('Content-Type: text/html; charset=utf-8');
vì output là json nên có thể ghi là
header('Content-Type: application/json; charset=utf-8');

NTC viết 03:12 ngày 01/10/2018

tks anh…nó hiển thị được rồi
http://dev.2dev4u.com/4u/GetPostReturnJson_showall.php

Bài liên quan
0