ホームページ >バックエンド開発 >PHPチュートリアル >JSON データ形式関数の PHP バージョンを共有する_PHP チュートリアル

JSON データ形式関数の PHP バージョンを共有する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:58:31885ブラウズ

今日 Mango Station のコードを見て、とても良いと思ったので再投稿しました。以下が原文です。

文字列形式の JSON データをインデント形式にフォーマットします。通常、json_encode を使用して変換された JSON 文字列はインデントされません。この方法の方がはるかに優れています。
ここではデフォルトでタブインデントを使用しています。スペースに変更したい場合は、変数 $indentStr を置き換えるだけです。

/**
* フラットな JSON 文字列をインデントして、人間が読みやすいようにします。
* @param string $json 処理する元の JSON 文字列。
* @return string 元の JSON 文字列のインデントされたバージョン。
*/
関数 indent ($json) {
$pos = 0;
$strLen = strlen($json); $newLine = "n";
$prevChar = '';
$outOfQuotes = true;

for ($i=0; $i<=$strLen; $i++) {

// string.
$char = substr($json, $i, 1);
// 引用符で囲まれた文字列内ですか?
if ($char == '"' && $prevChar != '\') {
$outOfQuotes = !$outOfQuotes;
// この文字が要素の末尾の場合、
// 新しい行を出力し、次の行をインデントします
} else if(($char == '}' || $char == ']') && $outOfQuotes) {
$result .= $newLine;
$pos --;
for ($j=0; $j$result .= $indentStr; }
}
// 結果の文字列に文字を追加します。
$result .= $char;
// 最後の文字が要素の先頭である場合、
// 新しい行を出力し、次の行をインデントします。 if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) {
$result .= $newLine
if ($char == '; {' || $char == '[') {
$pos ++;
for ($j = 0; $j $result .= $indentStr;
}
$prevChar = $char
}

$result を返す

}





http://www.bkjia.com/PHPjc/363833.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/363833.html

今日 Mango Station でコードの一部を見て、とても良いと思ったので再投稿しました。以下が原文です。 JSON データをインデントされる文字列としてフォーマットします。通常は json を使用します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。