php讲转义符号与json文件的趣事情

php中屡试不爽的数组和json

  • json_encode与json_decode
  • urlencode与urldecode
  • addslashes与stripslashes
  • addcslashes与stripcslashes

  • 以上这些请自行了解

附上两组操作实例

  1. 实例一,借助urlencode函数

    function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
    {
        static $recursive_counter = 0;
        if (++$recursive_counter > 1000) {
            die('possible deep recursion attack');
        }
        foreach ($array as $key => $value) {
            if (is_array($value)) {
                arrayRecursive($array[$key], $function, $apply_to_keys_also);
            } else {
                $array[$key] = $function($value);
            }
    
            if ($apply_to_keys_also && is_string($key)) {
                $new_key = $function($key);
                if ($new_key != $key) {
                    $array[$new_key] = $array[$key];
                    unset($array[$key]);
                }
            }
        }
        $recursive_counter--;
    }
    
    function my_json($array) {
        arrayRecursive($array, 'urlencode', true);
        $json = json_encode($array);
        return urldecode($json);
    }
    $arr = [
        'a'  => 123,
        'b'  => 456,
        'http://www.jjxhp.com/abc/sasa.php' => 'tstst你好',
        'http://www.baidu.com/' => '我们都是好人吧',
        'rew你好' => 'dsdsqwq'
    ];
    
    $str = my_json($arr);
    
    file_put_contents(__DIR__.'/json_str.txt', $str);
    
  2. 实例二,借助 json_encode与stripslashes

    $new_str = json_encode($arr, JSON_UNESCAPED_UNICODE);
    file_put_contents(__DIR__.'/new_json_str.txt', $new_str);
    $new_str1 = stripslashes($new_str);
    file_put_contents(__DIR__.'/new_json_str1.txt', $new_str1);
    

附言

  • htmlentities与htmlspecialchars也脑补吧,自己感觉真的很好用,嘻嘻!!

你可能感兴趣的:(php讲转义符号与json文件的趣事情)