ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルで JSON パッケージが見つからない問題を正しく解決する方法

PHP_PHP チュートリアルで JSON パッケージが見つからない問題を正しく解決する方法

WBOY
リリース: 2016-07-15 13:32:47
オリジナル
1011 人が閲覧しました

この問題の代替案は、PHP json の json_decode メソッドと json_encode メソッドをオーバーライドすることです。

これら 2 つの PHP に JSON パッケージがない場合の解決策は、主に配列、文字列、またはオブジェクトを json 形式のデータ (特殊な構造形式) に変換することです。まず必要なのは json_encode メソッドです。このメソッドは主に配列、文字列、オブジェクトなどを json 形式に変換します。この問題を解決する方法:

a. 簡易バージョン:

独自の問題のニーズに応じて (単純な配列を操作するだけで済みます)、この配列を直接文字列化できます。

b.完璧なエンコード方法:

PHP に JSON パッケージがない問題を解決する簡単な方法は、他の人が完成させたオープンソース コードを使用することです:

最初に思い浮かぶのは、zend フレームワークです。 zf_json パッケージから Decoder.PHP と Encoder.PHP を取得します。 Decoder.PHP は実際には、いずれかの保護メソッドの保護を削除するだけで済みます。 具体的な操作を忘れてしまったので、読者の方が自分でデバッグして解決してください。 Decoder クラスを書き換えた後、次のように呼び出します。

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">filepath</span><span> = $_SERVER['DOCUMENT_ROOT'];  </span></span></li>
<li>
<span>include $filepath.'/inc/json/Encoder.</span>PHP<span>';   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">encoder</span><span> = </span><span class="attribute-value">new</span><span> Zend_Json_Encoder(false);  </span>
</li>
<li>
<span>$</span><span class="attribute">json</span><span> = $encoder -</span><span class="tag">></span><span>encode($result);   </span>
</li>
<li class="alt"><span>header("X-JSON: $json"); </span></li>
</ol>
ログイン後にコピー

json_decode メソッドは、PHP で使用される場合は上記と同じです。

json が使用される多くの場所は依然として ajax 呼び出し内にあるため、一部の ajax 'フレームワーク' は、PHP に JSON パッケージがないという問題を解決するためのデコード メソッドを提供します。

たとえば、プロトタイプでは、PHP ページにprototype.js が含まれている場合, その後、 function(transport, json) { を直接呼び出すことができます。 。 Operation} json データ (json.a、json.b など) を取得します。

PHP に JSON パッケージがないという問題に加えて、エンコードに関する問題が発生する可能性があります。

zend フレームワークによって返される中国語の文字エンコーディングは、おそらく私のページのエンコーディング (utf-8) に対応していないため (utf-8 ではないというわけではありません)、問題が発生します。したがって、一部の検証で返されるエラー メッセージ (漢字) に影響します。ここでの代替方法は、従来のインターフェイスを使用して数値コード形式を返すことです (通信ゲートウェイでよく使用されるメソッド)。たとえば、json.code を返すには、0、1、2、3 などの多くの可能性があります。 js 側で処理する場合、0 は成功を示し、1 は不正なクライアント データを示します。 問題は完璧に解決されました。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446104.html技術記事この問題の代替案は、PHP json の json_decode メソッドと json_encode メソッドをオーバーライドすることです。 これら 2 つの PHP に JSON パッケージがない場合の解決策は、主に配列、文字列、またはオブジェクトを変換することです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート