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])則空格在左邊。