[调试日志]用php函数var_export把多维数组file_put_contents写入并打印到日志,以方便调试之多维数组,用php5中的var_export函数示例,顺带介绍http_build_query
一行解决写入日志:
一行完成Curl的POST输出:
临时调试:
路径变量:
在调试上传文件时,如苹果Android等(这一行来自PHP高级编程:岁月如哥【俗称:膘哥】(191295**)它提供的。2013-04-11 09:58 AM ):
后记:
岁月如哥(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\n return ".var_export($string,TRUE).";\n?>";
}
elseif($type == 'constant')
{
$data='';
foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','".
addslashes($value)."');\n";
$string = "<?php\n".$data."\n?>";
}
}
$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也可以,但我们只是想看看数组里面是什么,但又不想打印到页面上。
实例:
结果:
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
http_build_query 把数组整成一个get串:
一行完成Curl的POST输出:
临时调试:
路径变量:
在调试上传文件时,如苹果Android等(这一行来自PHP高级编程:岁月如哥【俗称:膘哥】(191295**)它提供的。2013-04-11 09:58 AM ):
后记:
岁月如哥(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\n return ".var_export($string,TRUE).";\n?>";
}
elseif($type == 'constant')
{
$data='';
foreach($string as $key => $value) $data .= "define('".strtoupper($key)."','".
addslashes($value)."');\n";
$string = "<?php\n".$data."\n?>";
}
}
$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;
?>
$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串:
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1627/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2016-2-25 10:34
评论列表