首页 > php教程 > PHP源码 > 正文

将php数组还原成php源代码

PHP中文网
发布: 2016-05-25 17:07:18
原创
1718人浏览过

1. [代码][PHP]代码    

<?php
    //说明:本程序将用于php代码中的数组调试,由于工作原因,经常要将php数组json化后传给客户端javascript,但是这些php数组是否是
    //符合格式的json字符串。往往数组传递过去了,但是前台没按要求显示出来。很可能是json_encode($arr)中的$arr格式不对,这时候用
    //var_dump($arr)打印出来的不是php代码的数组,于是自己写了这个功能,用于将php数组还原成php源码,这样就方便复制后修改,调试了。
    //--------------------array to code---------------------------start
    //四个函数
    //function is_assoc_array($array);判断是否是关联数组
    //function array_index_code(); 返回索引字符串源码
    //function array_assoc_code(); 返回关联字符串源码
    function is_assoc_array($array){ return array_keys($array) !== range(0, count($array) - 1);}

    /*打印如下字符串[索引数组源码]:
        array(
            "111",
            '222',
            "333",
        )
    */
    function array_index_code($arr,$tab){
        $code = str_repeat("\t",$tab). "array(\n";
        if( $arr ){
            foreach( $arr AS $v){
                if(is_int($v)){
                    $code .= str_repeat("\t",$tab). "$v,\n";
                }elseif(is_array($v)){
                    $code .= array_code($v,$tab); //递归调用.索引数组不需要用tab+2
                }else{
                    $code .= str_repeat("\t",$tab). "'$v',\n";
                }
            }
        }
        $code .= str_repeat("\t",$tab). "),\n"; //尾部有逗号
        return $code;
    }	
	/*打印如下字符串[关联数组源码]:
        array(
            "aaa"=>"111",
            "bbb"=>'222',
            "ccc'=> array(
                    ),
        )
    */
    function array_assoc_code($arr,$tab){
        $code = str_repeat("\t",$tab). "array(\n";
        if( $arr ){
            foreach( $arr AS $k=>$v){
                if(is_int($v)){
                    $code .= str_repeat("\t",$tab). "'$k'=>$v,\n";
                }elseif(is_array($v)){
                    $code .= str_repeat("\t",$tab). "'$k'=>\n". array_code($v,$tab+2); //递归调用,关联数组需要用tab+2
                }else{
                    $code .= str_repeat("\t",$tab). "'$k'=>'$v',\n";
                }
            }
        }
        $code .= str_repeat("\t",$tab). "),\n"; //尾部有逗号
        return $code;
    }

	/*
		打印数组,打印成php代码
	*/
    function array_code($arr,$tab=0){
        if(is_assoc_array($arr)){
            return array_assoc_code($arr,$tab);
        }else{
            return array_index_code($arr,$tab);
        }
    }
    //--------------------array to code---------------------------end
	//测试例子
	$arrTEST = array(
		"aaa"=>"111",
		"bbb"=> array(
				1,
				3,
				array(
					"wu"=>1,
					"jun"=>2,
					"jie"=>array(
						"aaa"=>"bbb",
						"ccc"=>"ddd",
					),
				)
				),
	);
	//var_dump($arrTEST);die;
	echo array_code($arrTEST);
?>
登录后复制

                   

QCMS 轻量级企业建站系统6.0.5
QCMS 轻量级企业建站系统6.0.5

QCMS企业建站系统是通过MVC架构开发的一套PHP轻量级系统,开源,小巧,易用,功能强大、可以自定义模块,容易二次开发,可以称得上是万能CMS系统,可用于企业站,文章站,图片站,下载站,你只要能想得到,就能做的到。 QCMS V6.0.0 主要功能描述特色说明: 简单易用的模板标签,是我们系统的核心组成部分,系统对SEO更友好,源代码全部开放,毫无保留! 1 内容模块有 ,新

QCMS 轻量级企业建站系统6.0.5 0
查看详情 QCMS 轻量级企业建站系统6.0.5

                   

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号