导航:首页 > 编程语言 > phpvarexport

phpvarexport

发布时间:2023-05-14 16:03:07

php json_encode与var_export是否有长度限制

理论上来说是不限制长度的,但是你的json_encode会消耗内存,你把内存调高点试一下,如果是表单传递过来,还要调一下upload max跟post max

㈡ 到底什么是PHP序列化

在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。本文讲述PHP序列化的四种方案,感兴趣的可以了解一下


序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。


1、什么是PHP序列化——serialize和unserialize函数


这两个是序列化和反序列化PHP中数据的常用函数。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = serialize($a);echo $s;//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}


echo ''


;


//反序列化$o = unserialize($s);


print_r($o);


当数组值包含如双引号、单引号或冒号等字符时,它们被反序列化后,可能会出现问题。为了克服这个问题,一个巧妙的技巧是使用base64_encode和base64_decode。


$obj = array();//序列化$s = base64_encode(serialize($obj)); //反序列化$original = unserialize(base64_decode($s));


但是base64编码将增加字符串的长度。为了克服这个问题,可以和gzcompress一起使用。


//定义一个用来序列化对象的函数


function my_serialize( $obj ) { return base64_encode(gzcompress(serialize($obj))); }


//反序列化function my_unserialize($txt) { return unserialize(gzuncompress(base64_decode($txt))); }


2、什么是PHP序列化——json_encode 和 json_decode


使用JSON格式序列化和反序列化是一个不错的选择:


使用json_encode和json_decode格式输出要serialize和unserialize格式快得多。


JSON格式是可读的。


JSON格式比serialize返回数据结果小。


JSON格式是开放的、可移植的。其他语言也可以使用它。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = json_encode($a);echo $s;//输出结果:{"a":"Apple","b":"banana","c":"Coconut"}


echo '


;


//反序列化$o = json_decode($s);


在上面的例子中,json_encode输出长度比上个例子中serialize输出长度显然要短。[page]


3、什么是PHP序列化——var_export 和 eval


var_export 函数把变量作为一个字符串输出;eval把字符串当成PHP代码来执行,反序列化得到最初变量的内容。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = var_export($a , true);echo $s;//输出结果: array ( 'a' => 'Apple', 'b' => 'banana', 'c' => 'Coconut', )


echo '


';


//反序列化eval('$my_var=' . $s . ';');


print_r($my_var);


4、什么是PHP序列化——wddx_serialize_value 和 wddx deserialize


wddx_serialize_value函数可以序列化数组变量,并以XML字符串形式输出。


$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');


//序列化数组$s = wddx_serialize_value($a);echo $s;


//输出结果(查看输出字符串的源码): ApplebananaCoconut


echo '


';


//反序列化$o = wddx_deserialize($s);


print_r($o);//输出结果:Array ( [a] => Apple [b] => banana 1 => Coconut )


可以看出,XML标签字符较多,导致这种格式的序列化还是占了很多空间。


结论


上述所有的函数在序列化数组变量时都能正常执行,但运用到对象就不同了。例如json_encode序列化对象就会失败。反序列化对象时,unserialize和eval将有不同的效果。


本篇《什么是PHP序列化?这个知识点才是你应该了解到的用》到这里就已经结束了,小编一直认为,某一个编程软件受欢迎是有一定原因的,首先吸引人的一定是其功能,环球网校的小编祝您PHP学习之路顺利,如果你还想知道更多php知识,也可以点击本站的其他文章进行学习。

㈢ php 数组写入txt文件

需要使用PHP的var_export()

具体语法为:var_export($times,true);后面不加true不能写入文件

实例:

<?
$fp=fopen('aa.txt','w+');
fwrite($fp,var_export($times,true));
fclose($fp);
?>

㈣ PHP中var_mp是什么意思

PHP中var_mp的意思是判断一个变量的类型与长度,并输出变量的数值。

拓展资料

一、如果变量有值输的是变量的值并回返数据类型。此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

二、用var_mp里面的变量必须是存在的,如果变量存在但值是空的就会返回false;没有变量则返回NULL.他自己就有输出的功能。不必加其他的输出函数。

三、var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值。

四、PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

五、PHP 可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

㈤ php怎样把一个数组写入一个文件

方法一:

//将一个测试的数组写入一个PHP文件:

<?php //要写入PHP文件的数组 $write_array = array( '1' => 'oneone', '2'
=> 'two', '3' => 'three', '4' => 'four','5' => 'five' );
//字符串处理 $string_start = "<?php\n"; $string_process =
var_export($write_array, TRUE);$string_end = "\n?>"; $string =
$string_start.$string_process.$string_end; //开始写入文件
echofile_put_contents('test_array.php', $string); ?>

这里用到了两个函数:

1,var_export():
·var_export — 用来输出或返回一个变量的字符串表示,它和 var_mp() 的区别是,var_export()
可以用来返回关于传递给该函数的变量的结构信息,并且其返回的表示是合法的 PHP 代码如果 “echo
$string_process;”,则可以看到输出结果:

array ( 1 => 'oneone', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', )

而它就是我们要写入 test_array.php 文件的内容(除去 php 标签);

·var_mp() 函数用来打印变量的相关信息,它只用来“打印”,而不会返回值,它的原型是 void var_mp(……),我们来 “var_mp($string_process);”,则可以看到输出结果:

string(86) "array ( 1 => 'oneone', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', )"

可以看到输出的string(86) “…”,再一次说明了 var_export() 返回的是一个字符串。

2,file_put_contents():
file_put_contents — 将一个字符串写入文件,原型是 int file_put_contents ( string
filename, string data [, int flags [, resource context]]
),这里我们只用到了两个参数,”string filename”:要写入的文件名;”string data”:字符串数据;
此函数返回写入到文件内数据的字节数,如果我们 “echo file_put_contents(’test_array.php’, $string);”,则会输出一个整数 :95。

因为输出的 array() 占了 86 个字节,还有的 $string_start 和 $string_end 又占了 9 个字节,转义字符 换行符 在这里只占 1 个字节。(不知道这样解释恰当不恰当,还有望大家多多指正)

方法二:json_encode()

我们常见一些网站在做ajax时返回JSON格式的数据:
返回的是json格式的数据返回的是json格式的数据

这有什么好处那?很显然前端在接到返回的数据时可以直接使用,而不用再用eval_r('(+ returnString +)')或者 $.parseJSON(returnString ) (jQuery的函数)来转化为js对象,这样显然为用户省电了。。。
在网上搜索了一下,这个问题在搜索中文信息的时候比较少,一些说是返回json的都是在前端进行的转化处理,根本不是返回JSON格式,其实返回json相当的简单。
原来的数据就是JSON格式

下例来自《锋利的jQuery》:

$(function(){

$('#send').click(function() {

$.getJSON('http://blog.meituo.net/wp-content/uploads/php_return_json/test.js', function(data) {

$('#resText').empty();

var html = '';

$.each( data , function(commentIndex, comment) {

html += '<div class="comment"><h6>' +
comment['username'] + ':</h6><p class="para">' +
comment['content'] + '</p></div>';

})

$('#resText').html(html);

})

})

})

你需要做的就是将数据存储为格式正确的 .json或者.js 文件。以下为示例所传送的json格式的数据

[

{

"username": "张三",

"content": "沙发."

},

{

"username": "李四",

"content": "板凳."

},

{

"username": "王五",

"content": "地板."

}

]
php输出JSON格式

那么php如何输出json格式?php 使用json_encode函数,然后jQuery使用datatype:json 就可以了嘛? 它的输出如下:
php 使用json_encode函数,jQuery使用datatype:json的返回类型php 使用json_encode函数,jQuery使用datatype:json的返回类型

显然并非所愿。还是字符串,到底怎么实现?其实很简单,只要在php文件头部加入以下代码:
header('Content-type: text/json');

这个头就是告知此文件输出类型为 json,这种形式我们见的最多的是验证码——php输出验证图片,有时php可以输出css文件,js文件等做一些有趣的事情。好的,我们测试一下吧。查看示例

示例代码:

< ?php

header('Content-type: text/json');

$fruits = array (

"fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),

"numbers" => array(1, 2, 3, 4, 5, 6),

"holes" => array("first", 5 => "second", "third")

);

echo json_encode($fruits);

?>

㈥ PHP调试中有哪些输出方法

PHP开发中,经常会查看变量的值,因此经常会将变量的值输出到页面以便于查看。
常用的输出方式有:echo、print、print_r、var_mp、var_exprot等;echo和print常用来输出字符串;
查看数组常用print_r、var_mp、var_exprot;
若使用echo和print输出数组时则,结果只能显示"Array",不会显示数组的结构。
一下举一例说明几种用法
配合print "<pre"和print "</pre",以数组$a为例说明各种输出的区别。
$a = array ('a' = 'apple', 'b' = 'banana', 'c' = array ('x', 'y', 'z'));
print_r($a);输出结果:Array ( [a] = apple [b] = banana [c] = Array ( [0] = x [1] = y [2] = z ) )
print "<pre"; print_r($a); print "</pre";输出结果:Array([a] = apple
[b] = banana
[c] = Array([0] = x[1] = y[2] = z))var_mp($a);输出结果:array(3) { ["a"]= string(5) "apple" ["b"]= string(6) "banana" ["c"]= array(3) { [0]= string(1) "x" [1]= string(1) "y" [2]= string(1) "z" } }
print "<pre"; var_mp($a); print "</pre";输出结果:array(3) {["a"]=string(5) "apple"["b"]=string(6) "banana"["c"]=array(3) {[0]=string(1) "x"[1]=string(1) "y"[2]=string(1) "z"}}var_export($a);输出结果:array ( 'a' = 'apple', 'b' = 'banana', 'c' = array ( 0 = 'x', 1 = 'y', 2 = 'z', ), )
print "<pre"; var_export($a); print "</pre";输出结果:array ('a' = 'apple',
'b' = 'banana',
'c' =array (0 = 'x',
1 = 'y',
2 = 'z',),)调试的时候可以根据不同的需要选用不同的输出方式。

㈦ php,数组的内容怎么输到指定格式的txt文件

PHP中,使用var_export函数即可将数组格式写入到文件;示例如下:

<?php
$file="chinawinxp.txt";
$content=array(
"name"=>"网络知道",
"company"=>"网络在线",
"city"=>"北京",
"other"=>array(
"e"=>"网络教育",
"jingyan"=>"网络经验",
)

);
file_put_contents($file,var_export($content,true)." ",FILE_APPEND);

//写入结果
/**
array(
'name'=>'网络知道',
'company'=>'网络在线',
'city'=>'北京',
'other'=>
array(
'e'=>'网络教育',
'jingyan'=>'网络经验',
),
)
*/

?>

㈧ php的var_export如何将数组输出成一个字符串

<?php
$a = array (1, 2, array ("a"州余, "b", "c"));
$str = var_export ($a, 1); // 将 var_export 的结果作为凳迹散函数返回值,枣氏而不是直接输出
echo str_replace("\n", "", $str); // 替换换行,然后输出~

㈨ PHP 数组下标负数的问题

这是因为win下是32bit的环境,Linux用的是64位环境。
-2在32bit下的数据为0xFFFF FFFE
-2在64bit下的数据为0xFFFF FFFF FFFF FFFE
而你那未经考虑就直接在64bit下可会导致
得到0x0000 0000 FFFF FFFE得值4294967294

解决办法:根据-2的“产生算法”或“数据来源”作出修改或应对
比如加入
if(PHP_INT_SIZE===4){
//在32bit系统下怎么处理-2
}else{
//在64bit系统下怎么处理-2

}

阅读全文

与phpvarexport相关的资料

热点内容
魔兽60宏命令大全 浏览:473
php志愿者网站源码 浏览:870
贸易pdf 浏览:495
dbug命令 浏览:351
开逛app如何加好友 浏览:958
ftpdos命令下载文件 浏览:75
华为如何打开语音服务器 浏览:242
python中的idle 浏览:1000
五轴联动数控编程 浏览:965
换一台电脑如何远程云服务器 浏览:132
阿里云怎么买云服务器 浏览:664
java提取文字 浏览:97
阿里云服务器同人账号问题 浏览:420
5分钟解压轴题 浏览:341
安卓桌面二级文件夹 浏览:188
eps文档加密 浏览:261
手机怎么做pdf 浏览:162
ug曲面pdf 浏览:279
液化气还是压缩气 浏览:950
阿里云公共ntp服务器地址 浏览:991