php输出字符
⑴ php如何输出中文json格式字符串
php如何输出中文json格式字符串
如何对json格式的字符串进行转换,php提供了两个函数:
json_encode 对变量进行 JSON 编码
json_decode 对 JSON 格式的字符串进行编码
下面看个实例:
$arr = ['a', 'b', 'c'];echo json_encode($arr);
输出为:
["a","b","c"]
但是,当我们在数组中放入中文的时候,就会出现问题:
$arr = [ '世界', '你好',
];echo json_encode($arr);
输出的结果为:
["\u4e16\u754c","\u4f60\u597d"]
这个结果显然不是我们想要的,但是为什么出现这个呢?
因为当我们的值中包含中文时,php对他进行json编码时底层会对中文进行unicode编码,导致结果不可读,那该怎么解决呢?
方法一
可以利用 urlencode 和 urldecode 方法绕过这个转码为 unicode 的过程,先将中文字段进行urlencode,然后json_encode,最后再用urldecode处理结果,便可以正常显示中文。具体代码如下:
$arr = [ '世界', '你好',
];echo urldecode(json_encode(array_map('urlencode', $arr)));
输出结果为:
["世界","你好"]
方法二
自PHP5.4版本,官方就已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。具体代码如下:
$arr = [ '世界', '你好',
];echo json_encode($arr, JSON_UNESCAPED_UNICODE);
["世界","你好"]
看吧,这才是我们想要的结果 :)
⑵ PHP 输出 有单引号的 字符串
PHP输出有单引号的字符串可以放在双引号里面,输出有双引号的字符串可以放在单引号里面,例子代码:
echo"这个字符串的中间有单引号(') ";
echo'这个字符串的中间有双引号(")';
⑶ 如何把用php将数组输出为 '','',''的字符串.
<?php
$arr=array('name'=>$nameArr,'data'=>$dataArr);
$str=json_encode($arr);
?>
<script>
varseries=<?phpecho$str?>;
</script>
⑷ PHP我想输出一段字符 怎么让其每隔一个字符插入指定的字符 后面则循环插入
$strnum=mb_strlen($str,'UTF8');
while($strnum){
$array[]=mb_substr($str,0,1,'utf8');
$str=mb_substr($str,1,$strnum,'utf8');
$strnum=mb_strlen($str,'UTF8');
}
$output=implode(',',$array);
这一段代码就是把一个字符串中每隔一个字符插入一个","
⑸ php,sprintf函数输出字符串问题
你运行一下这个代码,输出内容是:
[many monke]
printf的第一个参数是输出内容,后面的参数对应第一个参数里面的%*。例如本例代码,第一个参数是[%s],表示输出第二个参数,作为字符串。%10.10s里面的10.10表示输出占10个字符宽度、从字符串左边开始、最多只输出10个字符,输出的内容靠右、如果不够宽度(例如10.8s输出[ many mon])则空格在左边。