2

PHPを使用して、次のhtmlコードをJSONに追加する必要があります。

<a class="btn btn-mini btn-success" data-toggle="modal" href="#?page=customers-database-edit&id=$1">Edit</a>

これを直接追加すると、二重引用符 (") が含まれているため、JSON コードが壊れます。

だから私は次のコードを使用しようとしました:

if(is_string($result))
{
  static $jsonReplaces = array(array('\\', '/', '\n', '\t', '\r', '\b', '\f', '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
  return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $result) . '"';
}
else
  return $result;

上記のコードは、html が間違った方法であることを生成します。

<a class="\&quot;btn" btn-mini="" btn-success\"="" data-toggle="\&quot;modal\&quot;" href="\&quot;?page=customers-database-edit&amp;id=3\&quot;">Edit&lt;\/a&gt; \n</a>
4

1 に答える 1

4

json では引用符は問題ありません。エンコーディング機能に頼るしかありません。

この簡単なテスト スクリプトを作成しました。配列をエンコードし、json でエンコードされた文字列と、文字列を再度デコードして生成された配列の両方を出力します。これは、引用符が含まれているかどうかに関係なく、入力したものを取得できることを証明します。

テスト スクリプト:

<?php
$test=array(
  1=>'one',
  2=>'<a class="btn btn-mini btn-success" data-toggle="modal" href="#?page=customers-database-edit&id=$1">Edit</a>',
  3=>'three'
);
$json=json_encode($test);
echo $json."\n\n";
echo print_r(json_decode($json));
?>

出力:

{"1":"one","2":"<a class=\"btn btn-mini btn-success\" data-toggle=\"modal\" href=\"#?page=customers-database-edit&id=$1\">Edit<\/a>","3":"three"}

stdClass Object
(
    [1] => one
    [2] => <a class="btn btn-mini btn-success" data-toggle="modal" href="#?page=customers-database-edit&id=$1">Edit</a>
    [3] => three
)
于 2012-09-09T13:39:41.633 に答える