技术帝的平台展示,网站建设、网站推广、SEO技术、网站优化、电子商务推广、平面美工和软件测试等技术干货分享。

php bug:iconv() expects parameter 3 to be string, array given

phpcms技术 abel-lan 72℃ 0评论

概述

PHP报错iconv() expects parameter 3 to be string, array given,是因为iconv函数要求第三个参数是字符串类型,但却传递了数组类型导致报错。更改第三个参数类型为字符串即可解决该问题。

问题描述

PHP报错iconv() expects parameter 3 to be string, array given | phpcms\modules\search\index.php | 21
查看error_log,记录如下:

<?php exit;?>01-14 10:50:17 | 2 | iconv() expects parameter 3 to be string, array given | phpcms\modules\search\index.php | 21

解决过程

首先解释下错误代码的意思是“要求参数3为字符串,但却传递了个数组类型”
查看PHP手册iconv函数,要求第三个参数必须是字符串

PHP手册iconv函数介绍
PHP手册iconv函数介绍

找到报bug代码如下:

$search_setting = getcache('search');
$search_setting = iconv("utf-8","gb2312",$search_setting);
$setting = $search_setting[$siteid];

通过var_dump打印出$search_setting,发现是数组类型。证明是iconv函数第三个参数类型错误导致。
追根问底后,发现是由于同事错误添加代码导致。删除该函数这行的代码即解决问题。

经验

该bug很简单,我们查看php手册,再通过var_dump打印出函数类型,即可很容易解决该问题。
【扩展】这里iconv函数是为了解决乱码问题或者编码不匹配需要转换编码时使用。

转载请注明:半亩方塘 » php bug:iconv() expects parameter 3 to be string, array given

赞 (14)支付宝扫码打赏微信扫码打赏分享
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址