Heim > Backend-Entwicklung > PHP-Tutorial > PHP implementiert die gegenseitige Konvertierung zwischen Arrays und XML-Dateien

PHP implementiert die gegenseitige Konvertierung zwischen Arrays und XML-Dateien

小云云
Freigeben: 2023-03-21 14:52:02
Original
1446 Leute haben es durchsucht

Dieser Artikel stellt Ihnen hauptsächlich die von PHP implementierte gegenseitige Konvertierungsfunktion von Arrays und XML-Dateien vor. Er analysiert die Betriebsfähigkeiten von PHP für die gegenseitige Konvertierung von XML-Formatdaten und -arrays in Form von Beispielen. Ich hoffe, es kann allen helfen.

Vor kurzem habe ich WeChat-Zahlungen durchgeführt und der WeChat-Server gibt alle XML-Dateien zurück, daher müssen wir sie für eine einfache Bedienung in ein Array konvertieren. Gehen wir ohne weiteres direkt zum Code:

1. XML in Array konvertieren

/**
 * 将xml转为array
 * @param string  $xml xml字符串或者xml文件名
 * @param bool   $isfile 传入的是否是xml文件名
 * @return array  转换得到的数组
 */
function xmlToArray($xml,$isfile=false){
  //禁止引用外部xml实体
  libxml_disable_entity_loader(true);
  if($isfile){
    if(!file_exists($xml)) return false;
    $xmlstr = file_get_contents($xml);
  }else{
    $xmlstr = $xml;
  }
  $result= json_decode(json_encode(simplexml_load_string($xmlstr, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
  return $result;
}
Nach dem Login kopieren

Anwendungsbeispiel:

$xmlDoc=<<<ETO
<books>
 <book>
 <author>Jack Herrington</author>
 <title>PHP Hacks</title>
 <publisher>O'Reilly</publisher>
 </book>
 <book>
 <author>Jack Herrington</author>
 <title>Podcasting Hacks</title>
 <publisher>O'Reilly</publisher>
 </book>
 <book>
 <author>XML格式化</author>
 <title>脚本之家在线工具</title>
 <publisher>tools.jb51.net</publisher>
 </book>
</books>
ETO;
$relarr=xmlToArray($xmlDoc);
print_r($relarr);
Nach dem Login kopieren

Laufergebnis:

Array
(
  [book] => Array
    (
      [0] => Array
        (
          [author] => Jack Herrington
          [title] => PHP Hacks
          [publisher] => O'Reilly
        )
      [1] => Array
        (
          [author] => Jack Herrington
          [title] => Podcasting Hacks
          [publisher] => O'Reilly
        )
      [2] => Array
        (
          [author] => XML格式化
          [title] => 脚本之家在线工具
          [publisher] => tools.jb51.net
        )
    )
)
Nach dem Login kopieren

2. Array in XML konvertieren

/**
 * 数组转xml字符
 * @param string  $xml xml字符串
**/
function arrayToXml($data){
  if(!is_array($data) || count($data) <= 0){
    return false;
  }
  $xml = "<xml>";
  foreach ($data as $key=>$val){
    if (is_numeric($val)){
      $xml.="<".$key.">".$val."</".$key.">";
    }else{
      $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
    }
  }
  $xml.="</xml>";
  return $xml;
}
Nach dem Login kopieren

Anwendungsbeispiel:

$arrDoc= array("author"=>"XML格式化","title"=>"演示","publisher"=>"tools.jb51.net");
$xmlrel=arrayToXml($arrDoc);
//运行结果:<xml><author><![CDATA[XML格式化]]></author><title><演示]></title
><publisher><![CDATA[tools.jb51.net]]></publisher></xml>
Nach dem Login kopieren

Verwandte Empfehlungen:

php Beispielcode für die Handhabung der Konvertierung zwischen Arrays und XML

Das obige ist der detaillierte Inhalt vonPHP implementiert die gegenseitige Konvertierung zwischen Arrays und XML-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage