is_json()
是一個自定義函數,用于檢測給定的字符串是否為有效的 JSON 格式。它通常用于在處理 JSON 數據之前驗證其有效性。這個函數本身并不是 PHP 內置的,但可以通過編寫一個簡單的函數來實現:
function is_json($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
這個函數使用 json_decode()
嘗試解碼輸入的字符串,然后檢查 json_last_error()
的返回值。如果返回值為 JSON_ERROR_NONE
,則表示輸入的字符串是有效的 JSON 格式。
除了 is_json()
之外,還有其他一些方法可以用來檢測 JSON 數據的有效性,例如:
json_decode()
和 json_last_error()
函數:$data = json_decode($json_string);
if (json_last_error() !== JSON_ERROR_NONE) {
// 無效的 JSON 格式
} else {
// 有效的 JSON 格式
}
preg_match()
和正則表達式:if (preg_match('/^(\{|\[).*(\}|])$/s', $json_string)) {
// 可能是有效的 JSON 格式
} else {
// 無效的 JSON 格式
}
請注意,使用正則表達式的方法可能會產生誤報,因為它只檢查字符串的開頭和結尾是否為大括號或方括號,而不進行實際的 JSON 解析。因此,建議使用 is_json()
函數或者直接使用 json_decode()
和 json_last_error()
函數來檢測 JSON 數據的有效性。