今天有个thinkphp5.0版本的项目切换到php7.2版本,有个页面一直报错,打开调试代码。发现错误提示“The each() function is deprecated. This message will be suppressed on further calls”。说明php不建议继续使用each函数了,那如何修改代码了,下面介绍两种方法:1、改成 key()、current()函数来组装 $arr=['name'=>'phper163','year'=>2020];
list($a,$b) = [key($arr),current($arr)];
var_dump($a,$b);//string(4) "name" string(8) "phper163"2、使用foreach语法来实现 $arr=['name'=>'phper163','year'=>2020];
foreach($arr a
之前没考虑到这个问题,以为直接调用输出下就行了,这次有个编辑跟我说,页面不能加载更多内容了,用chrome浏览器调试模式查看有js报错,原来是输出的内容中有换行符造成js错误,从而导致后面的js不能正常执行了。不安全的做法:...
var share_content='';
...上面的代码是不严谨的,没有考虑到变量可能含有一些特殊的字符,如换行、引号等。正确的做法如下,...
var share_content="";
...大家可以封装成一个函数来处理这种情况,代码如下function php_safetransfer_js($str){
$str='"'.addcslashes($str, "\v\t\n\r\f\"'\\/").'"';
&nb
客户反馈之前做的一个专题,有个用户报名数据没有正确写入。简单介绍下h5功能,类似报名功能,微信下授权后获取到openid、nichname,之后填写姓名并选择所在城市等信息,提交表单信息。其他用户填写都是正常的,通过用户反馈过来,用户昵称为“橙澄僜”。通过调试发现,这个昵称字符串转换为gbk编码后,再通过addslashes转义,字符串末尾会出现反斜线(\)。造成拼接的sql出现解析错误。header("Content-Type:text/html;charset=gbk");
$ss='橙澄僜';
$ss2=iconv('utf-8','gbk//ignore',$ss);
$nickname=base64_encode($ss2);
var_dump($ss2,$nickname,base64_decode('s8izzoNc'));
$sql="insert into test (nickname,name) values (