preg_replace_callback替换preg_replace 正则表达式,转码编码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第二个输出弄错了是下面的$teem []= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $arr['invoice_type'] );echo "<pre>";print_r($teem);输出Array( [0] => a:2:{s:4:"type";a:3:{i:0;s:8:"个人发票";i:1;s:8:"企业发票";i:2;s:0:"";}s:4:"rate";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}}) 第二个输出弄错了是下面的$teem []= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $arr['invoice_type'] );echo "<pre>";print_r($teem);输出Array( [0] => a:2:{s:4:"type";a:3:{i:0;s:8:"个人发票";i:1;s:8:"企业发票";i:2;s:0:"";}s:4:"rate";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}}) $s = preg_replace_callback('/s:\d+:"(.+?)";/s', function($r) { $n = strlen($r[1]); return "s:$n:\"$r[1]\";"; }, $s); 大神我按照你的改了输出数据是这样代码 $teem = preg_replace_callback('/s:\d+:"(.+?)";/s', function($r) { $n = strlen($r[1]); return "s:$n:\"$r[1]\";"; }, $arr['invoice_type'] ); echo "<pre>"; print_r($teem);输出a:2:{s:4:"type";a:3:{i:0;s:8:"个人发票";i:1;s:8:"企业发票";i:2;s:12:"";}s:4:"rate";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}}企业发票后边S:0:"" 变为了s:12:"" 多了12长度,这个怎么来的 没考虑值为空的情况把 '/s:\d+:"(.+?)";/s' 改为 '/s:\d+:"(.*?)";/s' [分享]一本学习PHP开发的教程 执行MYSQL语句报 1064错误 求解? PHP+access,如何存取图片 唠叨大哥过来看看哦,这个Dom门好窄哦 如何连接mysql? 一个严重的问题!! 关于浏览器解释网页的一个奇怪问题 PHP安装问题,很菜。(在线等待) mysql查询时出现的惯问题!!! 在使用pdo预处理处理传参时,limit分页出现报错问题,请教大神看一下 php 数组 distinct 与order by 的问题及php和json的问题
$teem []= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $arr['invoice_type'] );
echo "<pre>";
print_r($teem);
输出
Array
(
[0] => a:2:{s:4:"type";a:3:{i:0;s:8:"个人发票";i:1;s:8:"企业发票";i:2;s:0:"";}s:4:"rate";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}}
)
第二个输出弄错了是下面的
$teem []= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $arr['invoice_type'] );
echo "<pre>";
print_r($teem);
输出
Array
(
[0] => a:2:{s:4:"type";a:3:{i:0;s:8:"个人发票";i:1;s:8:"企业发票";i:2;s:0:"";}s:4:"rate";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}}
)
function($r) {
$n = strlen($r[1]);
return "s:$n:\"$r[1]\";";
}, $s);
大神我按照你的改了输出数据是这样
代码
$teem = preg_replace_callback('/s:\d+:"(.+?)";/s',
function($r) {
$n = strlen($r[1]);
return "s:$n:\"$r[1]\";";
}, $arr['invoice_type'] );
echo "<pre>";
print_r($teem);
输出
a:2:{s:4:"type";a:3:{i:0;s:8:"个人发票";i:1;s:8:"企业发票";i:2;s:12:"";}s:4:"rate";a:3:{i:0;d:6;i:1;d:6;i:2;d:0;}}企业发票后边S:0:"" 变为了s:12:"" 多了12长度,这个怎么来的
把 '/s:\d+:"(.+?)";/s'
改为 '/s:\d+:"(.*?)";/s'