[调试日志]用php函数var_export把多维数组file_put_contents写入并打印到日志,以方便调试之多维数组,用php5中的var_export函数示例,顺带介绍http_build_query(转)

一行解决写入日志:
  1. file_put_contents("/tmp/jack.txt", var_export($layReturnArr,TRUE),FILE_APPEND); 

一行完成Curl的POST输出:
  1. echo "curl -d"".http_build_query($data)."" ".$url; 

临时调试:
  1. $result= var_export ( $_POST,True); 
  2. file_put_contents("/tmp/jack.txt",$result,FILE_APPEND); 

路径变量:
  1. $uploadSliceLogName = "/data/htdocs/xiyou_devel/data/logs/".date("Ymd")."/uploadedSliceReceiveInfo.txt";                                              
  2. file_put_contents($uploadSliceLogName, var_export($_REQUEST,TRUE),FILE_APPEND); 
  1. $file_string = var_export ( $_POST,True); 
  2. file_put_contents("/tmp/var_export.txt",$file_string,FILE_APPEND); 

在调试上传文件时,如苹果Android等(这一行来自PHP高级编程:岁月如哥【俗称:膘哥】(191295**)它提供的。2013-04-11 09:58 AM ):
  1. @file_put_contents("log.txt",var_export($_GET,$_POST,$_FILES,file_get_contents("php://input"),true),FILE_APPEND); 
后记: 岁月如哥(191295**)  15:20:48 你要看一下ios下。如果图片过大。或者。。。有些异常情况发生的时候。 $_FILES都为空的。 这些我们都遇到过 收到的内容全部为空。而且会导致其他所有的变量都为空 回忆未来-向东-Jàck(3726476**)  15:23:51 那有可能是这个问题,我用上面这个直接打Post有值,呵呵。 膘哥说得对,是可能图片太大了。
调试: 就能看到调试信息。 看了一下phpcms的源码:
  function cache_write($file, $string, $type = 'array')  {       if(is_array($string))       {           $type = strtolower($type);           if($type == 'array')           {               $string = "<?php return ".var_export($string,TRUE)."; ?>";           }           elseif($type == 'constant')           {               $data='';               foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','".  addslashes($value)."'); ";               $string = "<?php ".$data." ?>";           }       }       $strlen = file_put_contents(PHPCMS_CACHEDIR.$file, $string,FILE_APPEND);  //最好加上FILE_APPEND,否则tail -f出现 tail: /tmp/friendviews.txt: file truncated   参看:http://www.xiangdong.org/blog/post/1614/        chmod(PHPCMS_CACHEDIR.$file, 0777);         return $strlen;  }
可以看到 var_export 解释下 var_export (PHP 4 >= 4.2.0, PHP 5) var_export -- 输出或返回一个变量的字符串表示 描述 mixed var_export ( mixed expression [, bool return])
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE ,从而返回变量的表示。 应用场景: 假如我们看到一个数组是多维的,其实通过serialize之后写入文件 读出来之后unserialize也可以,但我们只是想看看数组里面是什么,但又不想打印到页面上。 实例:
<?php         $a = array ( 1 , 2 , array ( "a" , "b" , "c" ));         $file_string = var_export ( $a,True);         var_dump($file_string);         file_put_contents("/tmp/friendviews.txt",$file_string,FILE_APPEND);         exit;
?>
tail -f /tmp/friendviews.txt
结果: array (   0 => 1,   1 => 2,   2 =>   array (     0 => 'a',     1 => 'b',     2 => 'c',   ), )



http_build_query 把数组整成一个get串:
  1. file_put_contents("/tmp/jack.txt", " ".http_build_query($arg)." ",FILE_APPEND); 

http://www.justwinit.cn/post/1627/

原文地址:https://www.cnblogs.com/xihong2014/p/5343733.html