相关疑难解决方法(0)

存储PHP数组的首选方法(json_encode vs serialize)

我需要在平面文件中存储多维关联数据数组以用于缓存目的.我偶尔会遇到将其转换为JSON以便在我的Web应用程序中使用的需要,但绝大多数时候我将直接在PHP中使用该数组.

将数组作为JSON或PHP序列化数组存储在此文本文件中会更有效吗?我环顾四周,似乎在最新版本的PHP(5.3)中,json_decode实际上比它更快unserialize.

我目前倾向于将数组存储为JSON,因为我觉得如果有必要,人们可以更容易地阅读它,它可以在PHP和JavaScript中轻松使用,而且从我读过的,它甚至可能是更快解码(不确定编码).

有谁知道任何陷阱?任何人都有良好的基准来展示这两种方法的性能优势?

php arrays performance serialization json

590
推荐指数
12
解决办法
18万
查看次数

什么是PHP的serialize()函数?

我刚刚了解了这些serialize()unserialize()功能.这有什么用途?我知道人们将事物序列化到数据库中.你能给我一些有用的示例用法吗?

我也看到了javascript中的序列化代码,这是一样的吗?javascript中的序列化字符串可以用php反序列化unserialize()吗?

php serialization

33
推荐指数
3
解决办法
2万
查看次数

PHP <5.3,create_function和use变量

我正在尝试将一些PHP 5.3代码转换为PHP 5.2(不支持匿名函数).这是PHP 5.3代码:

$nr = 2;
$a = array(1,2,3,4,5,6,7,8,9,10);
$a = array_filter($a,function($e) use($nr) {
    return $e % $nr == 0;
});
Run Code Online (Sandbox Code Playgroud)

我的转换是这样的:

array_filter($a,create_function('$e','return $e % $nr == 0;'));
Run Code Online (Sandbox Code Playgroud)

应该use($nr)放在哪里?

php

5
推荐指数
1
解决办法
2092
查看次数

Php序列化

我试图将序列化的数组保存到我的mysql数据库然后检索它们并取消它们但是我无法解决它们如何反序列化它们.这是我到目前为止:

$query = mysql_query("SELECT friends FROM users WHERE id='$myid'");
$friends = mysql_fetch_array($query);

unserialize($friends);
Run Code Online (Sandbox Code Playgroud)

被困在这里?????

array_push($friends, $id);
$friendsUpdated = serialize($friends);

mysql_query("UPDATE users SET friends='$friendsUpdated' WHERE id='$myid'");
Run Code Online (Sandbox Code Playgroud)

php mysql serialization

0
推荐指数
1
解决办法
2711
查看次数

怎么做我只使用PHP获取双引号字符串

如何通过使用php将所有字符串括在一对双引号中,我想在下面的字符串中获取它们,

$str = 'a:2:{i:1;a:4:{i:1;s:4:"2000";i:2;s:8:"10th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}i:2;a:4:{i:1;s:4:"2003";i:2;s:8:"12th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}}';
Run Code Online (Sandbox Code Playgroud)

我想要输出如下

2000
10th STD
Full Time
State Board of Education
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码,但仅输出 2000

<?php

$str = 'a:2:{i:1;a:4:{i:1;s:4:"2000";i:2;s:8:"10th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}i:2;a:4:{i:1;s:4:"2003";i:2;s:8:"12th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}}'

if (preg_match('/"([^"]+)"/', $str, $m)) 
{
print $m[1];   
} 
else 
{

}
<?
Run Code Online (Sandbox Code Playgroud)

请建议我怎么做,我应该用哪个功能来获取输出?

php string

-1
推荐指数
1
解决办法
134
查看次数

标签 统计

php ×5

serialization ×3

arrays ×1

json ×1

mysql ×1

performance ×1

string ×1