漢字在php應用中經常會給我們帶來一些麻煩,今天在網上找到一段array數組轉換成xml時發現漢字就為空了,後來gg了關天得出比較好的結果了,下面與大家分享。
在 php 數組轉xml我們在php中學會這樣來寫
代碼如下 復制代碼
function array2xml($array, $xml = false){
if($xml === false){
$xml = new SimpleXMLElement('<root/>');
}
foreach($array as $key => $value){
if(is_array($value)){
array2xml($value, $xml->addChild($key));
}else{
$xml->addChild($key, $value);
}
}
return $xml->asXML();
}
header('Content-type: text/xml');
print array2xml($array);
當內容出現漢字時會出現為空的情況
解決辦法是轉編碼處理
function array2xml($array, $xml = false){
if($xml === false){
$xml = new SimpleXMLElement('<root/>');
}
foreach($array as $key => $value){
if(is_array($value)){
array2xml($value, $xml->addChild($key));
}else{
//$value=utf8_encode($value);
if (preg_match("/([x81-xfe][x40-xfe])/", $value, $match)) {
$value = iconv('gbk', 'utf-8', $value);
//判斷是否有漢字出現
}
$xml->addChild($key, $value);
}
}
return $xml->asXML();
}
後面給大家另一些關於漢字正則實例
1.判斷字符串是否全是漢字
代碼如下 復制代碼<?php
$str = '全部是漢字測試';
if (preg_match_all("/^([x81-xfe][x40-xfe])+$/", $str, $match)) {
echo '全部是漢字';
} else {
echo '不全是漢字';
}
?>
當$str = '全部是漢字測試'; 時輸出"全部是漢字";
當$str = 'all全部是漢字測試'; 時輸出"不全是漢字";