如何在php中转义json字符(双引号,逗号)

时间:2015-08-09 13:34:14

标签: php json excel

我正在使用php excel进行php项目..我已经为read excel表创建了php类。该类返回简单的json字符串..那个json字符串我将用于网页中的show data table。但是json字符串不能包含任何json字符。因此用户无法在Excel工作表中输入一些json字符。否则在编码json字符串时会产生很多错误。

防止此问题的最佳方法是什么? 有一些好的方法来阅读Excel工作表(使用库)?

1 个答案:

答案 0 :(得分:0)

你必须在双引号之前添加斜杠才能使用此功能

<?php
$str = "Is your name O'Reilly?";

// Outputs: Is your name O\'Reilly?
echo addslashes($str);
?>

<强>已更新

JSON的高级功能

function json_string_encode($str) {
    $callback = function($match) {
        if ($match[0] === '\\') {
            return $match[0];
        } else {
            $printable = array('"' => '"', '\\' => '\\', "\b" => 'b', "\f" => 'f', "\n" => 'n', "\r" => 'r', "\t" => 't');
            return isset($printable[$match[0]])
                   ? '\\'.$printable[$match[0]]
                   : '\\u'.strtoupper(current(unpack('H*', mb_convert_encoding($match[0], 'UCS-2BE', 'UTF-8'))));
        }
    };
    return '"' . preg_replace_callback('/\\.|[^\x{20}-\x{21}\x{23}-\x{5B}\x{5D}-\x{10FFFF}/u', $callback, $str) . '"';
}