11

したがって、json_encode を実行すると、MySQL からも \r\n が取得されます。データベース内の文字列を書き直そうとしましたが、役に立ちませんでした。MySQL のエンコーディングをデフォルトの latin1_swedish_ci から ascii_bin および utf8_bin に変更しようとしました。私はたくさんの str_replace と chr(10)、chr(13) をしました。他に何を言うべきか、何をすべきか分からないので、ここに置いておきます....

$json = json_encode($new);
if(isset($_GET['pretty'])) {
echo str_replace("\/", "/", jsonReadable(parse($json)));
} else {
$json = str_replace("\/", "/", $json);
echo parse($json);
}

jsonReadable 関数はhereから、parse 関数はhereからです。既にそこにある str_replaces は、</h1> のような奇妙なフォーマットの html タグを取得しているためです。最後に、$new は上で作成した配列です。リクエストに応じて完全なコード。

StackOverflow を助けてください。あなたは私の唯一の希望です

4

3 に答える 3

10

文字列に "\r\n" (0x0D 0x0A など) が含まれているか、それともリテラル文字列 '\r\n' が含まれていますか? 前者の場合、これにより改行が削除されます。

$json = preg_replace("!\r?\n!", "", $json);

必要に応じて、改行を br タグに置き換えたい場合は、2 番目のパラメーター "" を "<br />" に置き換えます。後者の場合は、次のことを試してください。

$json = preg_replace('!\\r?\\n!', "", $json);
于 2010-11-19T23:58:18.717 に答える
7

JSON で置き換えないでください。エンコードする前にソースで置き換えてください。

于 2010-11-19T23:52:25.550 に答える
2

私は同様の問題を抱えていました、私は使用しました:

$p_num = trim($this->recp);
$p_num = str_replace("\n", "", $p_num);
$p_num = str_replace("\r", ",", $p_num);
$p_num = str_replace("\n",',', $p_num);
$p_num = rtrim($p_num, "\x00..\x1F");

これが要件に役立つかどうかはわかりません。

于 2010-11-19T23:36:52.493 に答える