導航:首頁 > 編程語言 > 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宏命令大全 瀏覽:475
php志願者網站源碼 瀏覽:872
貿易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