json_encode() 和 json_decode() 实例

 更新时间:2016年11月25日 15:12  点击:1361

/*
json_encode - 返回一个值的JSON格式数组
json_encode — Returns the JSON representation of a value


*/


$arr = array ('a'=>"www.111cn.net",'b'=>"cc",'c'=>3,'d'=>4,'e'=>5);

$carray = json_encode($arr);

echo $carray ;

//结果{"a":"www.111cn.net","b":"cc","c":3,"d":4,"e":5} 现在我们用json_decode

$array = json_decode ( $carray );

print_r( $array );

/*
 结果
 (
    [a] => www.111cn.net
    [b] => cc
    [c] => 3
    [d] => 4
    [e] => 5
 )
*/

//随着字符串键PHP将考虑它的一个对象:


echo json_encode(array('id'=>'www.111cn.net'));
echo json_encode(array('testtext'));

/*
{"id":"www.111cn.net"}
["testtext"]

一个输出json格式的函数
*/

 代码如下 复制代码

function json_format($json)
{
    $tab = "  ";
    $new_json = "";
    $indent_level = 0;
    $in_string = false;
   
    $json_obj = json_decode($json);
   
    if(!$json_obj)
        return false;
   
    $json = json_encode($json_obj);
    $len = strlen($json);
   
    for($c = 0; $c < $len; $c++)
    {
        $char = $json[$c];
        switch($char)
        {
            case '{':
            case '[':
                if(!$in_string)
                {
                    $new_json .= $char . " " . str_repeat($tab, $indent_level+1);
                    $indent_level++;
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case '}':
            case ']':
                if(!$in_string)
                {
                    $indent_level--;
                    $new_json .= " " . str_repeat($tab, $indent_level) . $char;
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case ',':
                if(!$in_string)
                {
                    $new_json .= ", " . str_repeat($tab, $indent_level);
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case ':':
                if(!$in_string)
                {
                    $new_json .= ": ";
                }
                else
                {
                    $new_json .= $char;
                }
                break;
            case '"':
                $in_string = !$in_string;
            default:
                $new_json .= $char;
                break;                   
        }
    }
   
    return $new_json;
}

/*


在用到json_encode这个函数注意,它不支持中文,所以我们要先把编辑urlencode编辑再在js转,并且js返回的数据给php教程时也要注意一点,json返回的数据是utf-8的如果你的php文档是gbk的,所以也要用incov转换成gbk哦。
*/

其中的expr为判断的条件,通常都是用逻辑运算符号当判断的条件。而statement为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。

/*
if (expr) { statement }

范例:本例省略大括号。

 代码如下 复制代码
<?php
if ($state==1)echo "哈哈" ;
?>

判断是否相等是==而不是=,ASP程序员可能常犯这个错误,=是赋值。
范例:本例的执行部分有三行,不可省略大括号。

 代码如下 复制代码
<?php
if ($state==1) {
  echo "哈哈 ;
  echo "<br>" ;
}
?>

第二种是除了if之外,加上了else的条件,可解释成“若发生了某事则怎样处理,否则该如何解决”。语法如下:
if (expr) { statement1 } else { statement2 }
范例:上面的例子来修改成更完整的处理。其中的else由于只有一行执行的指令,因此不用加上大括号

 代码如下 复制代码
<?php
if ($state==1) {
  echo "哈哈" ;
  echo "<br>";
}
else{
  echo "呵呵";
  echo "<br>";
}
?>


第三种就是递归的if..else循环,通常用在多种决策判断时。它将数个if..else拿来合并运用处理。
直接看下面的例子:

 代码如下 复制代码
<?php
if ( $a > $b ) {
  echo "a 比 b 大" ;
} elseif ( $a == $b ) {
  echo "a 等于 b" ;
} else {
  echo "a 比 b 小" ;
}
?>

if..else循环,用来比较a和b两个变量。实际要使用这种递归if..else循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题
*/

这里我们只用一层循环就实例了99九法表的打印输出了。

 代码如下 复制代码

<?php
for($i=1,$n=9;$i<=$n;$i++)
{
if($i==$n)
{
echo $i.'x'.$n.'='.($i*$n).' ';
$n=--$n;
$i=1;
echo '<br />';
}
echo $i.'x'.$n.'='.($i*$n).' ';
}
?>

<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php如何读取单选按钮[radio]值</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <p>
    <label>
      <input type="radio" name="RadioGroup1" value="1" />
      单选</label>
    1<br />
    <label>
      <input type="radio" name="RadioGroup1" value="2" />
      单选</label>
  2</p>
  <p>
    <label>
    <input type="submit" name="Submit" value="提交" />
    </label>
    <br />
  </p>
</form>
</body>
</html>
<?
if( $_POST )
{
 echo '你选择了单选择',$_POST['RadioGroup1'];
 //由于单选按钮的属性同一时间只能被选中一个就所直接把他们名字相同就OK了。
}

<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php获取 checkbox复选框值的方法</title>
</head>

<body>
<form name="form1" method="post" action="">
  <label>
  <input type="checkbox" name="checkbox[]" value="复选一">
  复选一
  </label>
  <label>
  <input type="checkbox" name="checkbox[]" value="复选二">
  </label>
复选二
<label>
<input type="checkbox" name="checkbox[]" value="复选三">
</label>
复选三
<label>
<input type="checkbox" name="checkbox[]" value="复选四">
</label>
复选四
<label>
<input type="submit" name="Submit" value="提交">
</label>
</form>
</body>
</html>
<?
if( $_POST )
{
 $value = $_POST['checkbox'];
 echo '你选择了:'.implode(',',$value);
 
 //由于checkbox属性,我们必须把checkbox复选择框的名字设置为一个如果checkbox[],这样php才能读取,以数据形式,否则不能正确的读取checkbox复选框的值哦。本站原创转载注明来源www.111cn.net
}
?>

[!--infotagslink--]

相关文章

  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • php中json_decode()和json_encode()用法与中文不显示解决办法

    本文章介绍了关于php中json_decode()和json_encode()用法与中文不显示解决办法,有需要的朋友可以参考一下下。 php中json_decode()和json_encode() 1.json_decode(...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • PHP json_encode() 函数详解及中文乱码问题

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式。<&#63;php$arr = array ( 'Name'=>'希亚', 'Age'...2015-11-08
  • yii添删改查实例

    一、数据访问对象 (DAO)YiiDAO 基于 PHP Data Objects (PDO) 构建。它是一个为众多流行的DBMS提供统一数据访问的扩展,这些 DBMS 包括MySQL, PostgreSQL 等等。因此,要使用 Yii DAO,PDO 扩展和特定的 PDO 数据库驱动(例如...2015-11-24
  • 快速理解MySQL中主键与外键的实例教程

    主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php&#63;id=1 表示我要访问的是帖子...2015-11-24
  • c# 接口使用实例

    这篇文章主要介绍了c#接口使用的实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-17
  • php json_encode值中大括号与花括号区别

    1.当array是一个从0开始的连续数组时,json_encode出来的结果是一个由[]括起来的字符串而当array是不从0开始或者不连续的数组时,json_encode出来的结果是一个由{}括起来的key-value模式的字符串复制代码 代码如下:$test...2013-10-04
  • C#中的IEnumerable简介及简单实现实例

    这篇文章主要介绍了C#中的IEnumerable简介及简单实现实例,本文讲解了IEnumerable一些知识并给出了一个简单的实现,需要的朋友可以参考下...2020-06-25
  • javascript另类方法实现htmlencode()与htmldecode()函数实例分析

    这篇文章主要介绍了javascript另类方法实现htmlencode()与htmldecode()函数,结合实例形式分析了javascript字符编码与解码操作的相关技巧,需要的朋友可以参考下...2016-11-22
  • vue实例的选项总结

    这篇文章主要介绍了Vue实例的选项有哪些,文中讲解非常细致,代码帮助大家更好的学习,感兴趣的朋友可以了解下...2020-06-10
  • php socket讲解与实例

    在这一章里你将了解到迷人而又让人容易糊涂的套接字(Sockets)。Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用sock...2016-11-25
  • Vue实例简单方法介绍

    这篇文章主要为大家详细介绍了Vue实例的一些简单方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-23
  • php curl中x-www-form-urlencoded与multipart/form-data 方式 Post 提交数据详解

    下面我们一起来看一篇关于php 中x-www-form-urlencoded与multipart/form-data 方式 Post 提交数据详解,希望文章能够对各位有所帮助哦。 multipart/form-data 方式...2016-11-25
  • C++内核对象封装单实例启动程序的类

    这篇文章主要介绍了利用C++内核对象封装的类,程序只能运行单个实例,可防止多次启动,大家参考使用吧...2020-04-25
  • php 中缓冲输出实例代码

    ob_start([string output_callback])- 打开输出缓冲区   所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。 ob...2016-11-25
  • php ENCODE编码,DECODE解码

    /** * @ string $str 要编码的字符串 * @ string $ende 操作ENCODE编码,DECODE解码 * @ string $key hash值 * @return string */ function code($str, $end...2016-11-25
  • C# 委托(跨窗体操作控件)实例流程讲解

    今天研究了一下,在C#里面却是可以不用自定义消息这么复杂的方法来实现跨窗体调用控件,C#有更好的办法就是委托。...2020-06-25
  • 浅析rawurlencode()和urlencode()函数区别

    本文章来给大家介绍关于rawurlencode()和urlencode()函数区别用法介绍,各位朋友可参考。 今天在阅读开源代码时发现了一个URL的编码函数:rawurlencode(),以前一直...2016-11-25
  • PHP支持断点续传实例代码

    下面我们来介绍一下关于php实现断点续传的代码,有需要学习的朋友可参考一下。 让PHP下载代码支持断点续传 主要靠的 HTTP协议中header Content-Range来实现 先来...2016-11-25