程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 解決php array數組生成xml文件漢字編碼問題

解決php array數組生成xml文件漢字編碼問題

編輯:關於PHP編程

漢字在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全部是漢字測試'; 時輸出"不全是漢字";

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved