php如何做到 $a = array php('qq','ww','ee','rr'); 输出$a为 echo $a;效果为 &

Send to Email Address
Your Email Address
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.php中json_encode格式中文问题解决方法-常见问题-Php教程-壹聚教程网php中json_encode格式中文问题解决方法
今天要在MySQL 存储php中json_encode格式信息,英文时没有问题,但是中文时就碰到了遇到中文时, 会变成一堆类似uxxxx信息.
1. 原因分析:
在存储到时!MySQL 不会存储 unicode 字符:
MySQL 仅支持从基本的多语种平面字符 (0&0000-0xFFFF)。请尝试存储一个同义词相反:)
更新: MySQL 5.5.3 上 (其中尚未 GA), 支持补充字符如果您使用 UTF8MB4 编码。
json_encode中文的时候,会把每个中文字符encode成&uxxxx&
而存进的时候,&&被屏蔽了,直接变成&uxxxx&
2. 解决问题:
知道是什么原因就好解决问题了,你可以选择其他存储方式;
或者再对症下药进一步转义&&为&\&,以保留&&
我们的解决方案:
1. 避免json_encode将中文转换unicode编码.
PHP5.4版本,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。
$test = json_encode(&深圳&, JSON_UNESCAPED_UNICODE);
2. 先将中文字段urlencode,json_encode后,再用urldecode,也可以保证中文不会被转成unicode。
$test =urldecode(json_encode(array('brief'=&urlencode('简介'),'title'=&urlencode(标题)));
3. 进一步转义&&为&\& 避免unicode中文前&'被mysql当成特殊字符去除
上一页: &&&&&下一页:相关内容查看: 3420|回复: 71
注册时间最后登录阅读权限150积分5456精华3帖子
教学内容:
教学视频:
课后作业:
注册时间最后登录阅读权限30积分477精华0帖子
中级会员, 积分 477, 距离下一级还需 23 积分
/*
& & 数组讲解
& & 1、数组特点及声明方式
& & 2、索引数组,关联数组,多维数组
& & 3、键的规则
& & 4、操作数组单元
& & 5、循环数组
& & 6、游标操作
& & 7、常用函数及面试题
*/
/*
& & 1、数组特点及声明方式
& && & 数组是一种复合数据,可以装下多个值,每个值用不同的键来区分;
*/
$arr = array('001'=&'春','002'=&'夏','003'=&'秋');
print_r($arr);
/*
& & 2、索引数组,关联数组,多维数组&&
*/
$arr = array(0=&'东',1=&'南',2=&'西');&&//键不必有特殊意义,纯数字;这种叫'索引数组'
$stu = array('name'=&'小华','age'=&30); //字符串做键,一般能体现该单元的内容,如age-&年龄;这种叫'关联数组';
$arr = array(0=&'a',1=&array('stu'=&'小明','bag'=&array('语文','数学')));
print_r($arr);& &//用数组作为数组的单元,这种数组叫做多维数组;一般只用二维数组;
/*
& & 3、键的规则
& && &1)如果不申明键,会从0,1,2,,递增来生成键,如果已经存在某1个或几数字键,则从最大的数字键,再递增生成数字键;
& && &2)如果键申明重复了,后面的值覆盖前面的值;
& && &3)键可以是整数,也可以是字符串;
& && &4)浮点数转成整数;如果字符串的内容恰好是整数,也理解成整数;
*/
$arr = array('a','b','c');&&
print_r($arr);
echo '&br /&';
$arr = array(3=&'a','b','c');
print_r($arr);
$arr = array(3=&'a',3=&'b',4=&'c');
print_r($arr);
//浮点数转成整数;如果字符串的内容恰好是整数,也理解成整数;
$arr = array(2=&'布',2.5=&'尔','2.5'=&'教','2'=&'育');
print_r($arr);& & //育,教;
$arr = array(2=&'布',2.5=&'尔','2.5'=&'教');
print_r($arr);& & //尔,教;
$arr = array(2=&'布',2.5=&'尔','2.5'=&'教','2x'=&'育');
print_r($arr);& & //尔 教&&育;
echo '&br /&';
/*
& & 4、操作数组单元
*/
$arr = array('a','b','c');
//增1个单元;
$arr[] = 'd';
$arr[99] = 'e';
$arr['age'] = 30;
$arr['stu'] = array('li','wang');
print_r($arr);
//读取单元值;
echo $arr[3];&&//1维数组;
echo $arr['stu'][0]; //li
//改单元的值;就是重新赋值;
$arr[0] = 'A';
//删除某个单元;
unset($arr[1]);
print_r($arr);
echo '&br /&';
/*
& &&&5、循环数组
*/
/*
& & 方法一:for循环,对于0,1,2,,,增加的索引数组;
& &
& & count — 计算数组中的单元数目或对象中的属性个数
& & int count ( mixed $var [, int $mode ] )
& & 返回 var 中的单元数目,通常是一个 array,任何其它类型都只有一个单元。& &
*/
$arr = array('a','b','c','d','e','g');
for($key = 0;$key & count($arr);$key ++){
& & echo $arr[$key],'&br /&';
}
/*
& & 方法二:关联数组,foreach
& & foreach (array_expression as $value)
& && &&&statement
& & foreach (array_expression as $key =& $value)
& && &&&statement
& & 第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
& & 第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
& &
*/
$arr = array('age'=&28,'height'=&180,'name'=&'lisi');
foreach($arr as $key=&$value){
& & echo $key,'~',$value,'&br /&';
}
foreach($arr as $v){
& & echo $v,'&br /&';
}
//作业:把下面这个的数组的每个单元值变成原来的2倍
$stu = array('lisi'=&23,'wang'=&25,'zhao'=&26);
echo '原来的$stu &br /&';
foreach($stu as $k=&$v){
& & echo $k,'~',$v,'&br /&';
& & $stu[$k] = $stu[$k]*2;
}
echo '改变后的$stu &br /&';
foreach($stu as $k=&$v){
& & echo $k,'~',$v,'&br /&';
?&复制代码
注册时间最后登录阅读权限30积分295精华0帖子
中级会员, 积分 295, 距离下一级还需 205 积分
&&循环:反复执行
&&遍历:沿着某条搜索路线,对树中每个结点做一次仅做一次访问
-------------------------------------------------
&&对于索引数组,完全可以依靠for 或while循环搞定, count() 函数可以获取数组的长度&?php
$arr=array('a','b','c','d',);
&&for($i=0; $i&count($arr); $i++){& && && &// & 没=
& && &&&echo $arr[$i];& && && && && && && && && && &//abcd
&&}& &复制代码对于索引关联数组,for循环使用不了,因为其下标不规则。foreach($arr&&as&&$v&&){}& && &格式如下 $arr=array('a','b','c');
&&foreach($arr as $v){
& && &echo $v;& && && && && && && &&&//abc
&&}复制代码//注意如果还想要把键输出 还可以&?php
$arr=array('a','b','c');
&&foreach($arr as $k=&$v){
& && &echo $k,'-&',$v,'&br /&';& && && && && && &
& & //0-&a
& & //1-&b
& & //2-&c复制代码
注册时间最后登录阅读权限30积分263精华0帖子
中级会员, 积分 263, 距离下一级还需 237 积分
//for循环,对于0,1,2,3
$arr = array('a','b','c','d','e','f');
for($key=0;$key&count($arr);$key++){
& & & & echo $arr[$key];
$arr1=array('age'=&20,'name'=&'xiao','height'=&180);
foreach($arr1 as $key=&$value){
& & & & echo $key,'=&',$value,'&br /&';
注册时间最后登录阅读权限30积分263精华0帖子
中级会员, 积分 263, 距离下一级还需 237 积分
$stu=array('lisi'=&3,'wang'=&5,'zhao'=&6);
foreach($stu as $k=&$v){
& & & & $stu[$k]=$v*2;
& & & &
}
print_r($stu);复制代码
注册时间最后登录阅读权限20积分180精华0帖子
注册会员, 积分 180, 距离下一级还需 20 积分
& & & & & & & & & & & & & & & & $arr = array('lisi' =&3 ,'wangwu'=&5,'zhaoliu'=&6 );
& & & & & & & & & & & & & & & & foreach ($arr as $key=&$value) {
& & & & & & & & & & & & & & & & & & & & $arr[$key]=$value*2;
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & print_r($arr);
& & & & & & & & & & & &&&?&复制代码
注册时间最后登录阅读权限20积分86精华0帖子
注册会员, 积分 86, 距离下一级还需 114 积分
布尔教育 高端PHP培训
//39 循环数组
//for循环,对于从0 1 2...递增的索引数组
$arr =array('a','b','c','d','e','f');
for($key =0; $key&count($arr); $key++){
echo $arr[$key],'&br/&';
$arr = array('age'=&28,'height'=&180,'name'=&'lisi');
foreach ($arr as $key =& $value) {//打印关联数组
& & & & echo $key,'~',$value,'&br/&';
foreach($arr as $a){
& & & & echo $a,'&br/&';
//把下面这个数组的每个单元值变成原来的2倍
$stu = array('lisi'=&3,'wang'=&5,'zhao'=&6);
foreach($stu as $v){
& & & & $v=$v*2;
& & & & echo $v,'&br/&';
注册时间最后登录阅读权限30积分357精华0帖子
中级会员, 积分 357, 距离下一级还需 143 积分
王倩君done://遍历数组
$flower = array(1=&'桃花',2=&'荷花');
for($start=1,$len=count($flower);$start&=$$start++){
& & & & echo $flower[$start] . '&br /&';
}
foreach($flower as $k=&$v){
& & & & echo $k . ':' . $v . '&br /&';
}
$mark = array('lisi'=&3,'ww'=&5,'ll'=&6);
foreach($mark as $k=&$v){
& & & & $mark[$k] = $v*2;
}
print_r($mark);复制代码
注册时间最后登录阅读权限30积分402精华0帖子
中级会员, 积分 402, 距离下一级还需 98 积分
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Strict//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&&
&html xmlns=&http://www.w3.org/1999/xhtml&&
&head&
&meta http-equiv=&Content-Type& content=&text/ charset=utf-8& /&
&title&无标题文档&/title&
&/head&
&body&
&?php
//遍历数组
$arr=array('a','b','c','d');
//循环法
for($key=0;$key&count($arr);$key++){
echo $arr[$key],'&br/&';
}
//函数法
$arr=array('name'=&'zhangsan','age'=&'23','height'=&'180');
foreach($arr as $keyname=&$keyvalue){
echo $keyname,'||',$keyvalue,'&br/&';
}
foreach($arr as $keyv){
& & & & echo $keyv,'&br/&';
& & & & & & & & }
//数组值变两倍
$arr=array('xiaoming'=&3,'xiaohong'=&4,'xiaojun'=&6);
foreach($arr as $keyn=&$keyv){
& & & & $arr[$keyn]=($keyv*2);
& & & & }
& & & & print_r($arr);
?&
&/body&
&/html&复制代码
注册时间最后登录阅读权限30积分424精华0帖子
中级会员, 积分 424, 距离下一级还需 76 积分
for循环:要求键是连续的整数
foreach循环:没有要求
Powered by}

我要回帖

更多关于 array php 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信