10/10/2018, 00:12
json_encode, ở đâu tìm cái tương đương ?
Cái host của tui không cài đặt sẵn thư viện để chạy hàm này. Vấn đề nảy sinh khi tui viết 1 class dùng đọc RSS, nó đây :
http://hlinhlan.uni.cc/act/snapi.php...=25&output=xml
Có 3 tham số truyền vào URL gồm :
- url : địa chỉ feed
- lim : số entries trích lấy từ nguồn tin
- output : định dạng
Giá trị của output chỉ có thể là "xml" hoặc "json".
Tui đang dùng tạm 1 hàm đơn giản này, nhưng thỉnh thoảng vẫn bị lỗi khi gặp các nguồn tin sử dụng ký tự lạ.
Xin hỏi các bác có mã PHP nào cho ra kết quả tương tự json_encode không ạ ?
[=========> Bổ sung bài viết <=========]
Vấy đề đã được giải quyết xong.
Nhờ chỉ dẫn của bác pcdinh, tui tìm đến thư viện JSON_Service :
http://mike.teczno.com/JSON/doc/
Và :
"La Nati s'est imposu006500202-0 gru00630065 u00200075n doublu00200064e Hakan Yakin."
http://hlinhlan.uni.cc/act/snapi.php...=25&output=xml
Có 3 tham số truyền vào URL gồm :
- url : địa chỉ feed
- lim : số entries trích lấy từ nguồn tin
- output : định dạng
Giá trị của output chỉ có thể là "xml" hoặc "json".
Tui đang dùng tạm 1 hàm đơn giản này, nhưng thỉnh thoảng vẫn bị lỗi khi gặp các nguồn tin sử dụng ký tự lạ.
PHP Code:
function jsonEncode($string){
$search = array(', "
", "
", '"');
$replace = array('\', '\n', '\r', '"');
$string = str_replace($search, $replace, $string);
return '"'.$string.'"';
}
[=========> Bổ sung bài viết <=========]
Vấy đề đã được giải quyết xong.
Nhờ chỉ dẫn của bác pcdinh, tui tìm đến thư viện JSON_Service :
http://mike.teczno.com/JSON/doc/
Và :
"La Nati s'est imposu006500202-0 gru00630065 u00200075n doublu00200064e Hakan Yakin."
Bài liên quan
if (!function_exists('json_encode'))
{
function json_encode($a=false)
{
if (is_null($a)) return 'null';
if ($a === false) return 'false';
if ($a === true) return 'true';
if (is_scalar($a))
{
if (is_float($a))
{
// Always use "." for floats.
return floatval(str_replace(",", ".", strval($a)));
}
if (is_string($a))
{
static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
return '"' . str_replace($jsonReplaces***91;0***93;, $jsonReplaces***91;1***93;, $a) . '"';
}
else
return $a;
}
$isList = true;
for ($i = 0, reset($a); $i < count($a); $i++, next($a))
{
if (key($a) !== $i)
{
$isList = false;
break;
}
}
$result = array();
if ($isList)
{
foreach ($a as $v) $result***91;***93; = json_encode($v);
return '***91;' . join(',', $result) . '***93;';
}
else
{
foreach ($a as $k => $v) $result***91;***93; = json_encode($k).':'.json_encode($v);
return '{' . join(',', $result) . '}';
}
}
}
I've modified jjoss' php2js function to remove the extra whitespace (not needed for machine-readable output) and leave quotes off of non-string variables so that it more closely resembles the output of json_encode. In my testing this function and json_encode return the exact same result. I use this as a substitute if json_encode is not defined, so if anyone finds any differences between this and json_encode I would like to see the corrections.
http://pear.php.net/pepr/pepr-proposal-show.php?id=198
http://framework.zend.com/manual/en/zend.json.html
and more: http://www.json.org/
"La Nati s'est impos\u006500202-0 gr\u00630065 \u00200075n doubl\u00200064e Hakan Yakin."
View source Gmail cũng thấy nó làm vậy với các thông điệp
Thank 3do, lát rảnh tớ sẽ nghiên cứu thêm