이 기사의 예에서는 PHP가 XML 형식으로 데이터를 생성하고 가져오는 방법을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
데이터 인터페이스를 만들 때 일반적으로 타사 데이터 인터페이스를 얻거나 타사에 데이터 인터페이스를 제공해야 하며 이러한 데이터 형식은 일반적으로 XML 또는 JSON 형식으로 전송됩니다. 여기서는 PHP를 사용하여 XML을 생성하는 방법을 소개합니다. 제3자 호출을 위한 데이터 형식 및 제3자가 제공하는 XML 데이터를 얻는 방법.
XML 형식 데이터 생성
시스템에 학생 정보 테이블이 있고 통화를 위해 제3자에게 제공해야 하며 학생의 이름, 성별, 나이 및 기타 정보를 기록하기 위한 ID, 이름, 성별, 나이가 있다고 가정합니다. 각기.
CREATE TABLE `student` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, `sex` varchar(10) NOT NULL, `age` smallint(3) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
먼저 createXML.php 파일을 생성하고 데이터베이스에 접속하여 데이터를 얻어옵니다.
include_once ("connect.php"); //连接数据库 $sql = "select * from student"; $result = mysql_query($sql) or die("Invalid query: " . mysql_error()); while ($row = mysql_fetch_array($result)) { $arr[] = array( 'name' => $row['name'], 'sex' => $row['sex'], 'age' => $row['age'] ); }
이때 데이터는 $arr에 저장됩니다. print_r을 사용하여 테스트용 데이터를 인쇄할 수 있습니다.
다음으로 xml을 만들고, 배열을 반복하고, xml에 해당하는 노드에 데이터를 씁니다.
$doc = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码 $doc->formatOutput = true; $r = $doc->createElement_x("root"); $doc->appendChild($r); foreach ($arr as $dat) { $b = $doc->createElement_x("data"); $name = $doc->createElement_x("name"); $name->appendChild($doc->createTextNode($dat['name'])); $b->appendChild($name); $sex = $doc->createElement_x("sex"); $sex->appendChild($doc->createTextNode($dat['sex'])); $b->appendChild($sex); $age = $doc->createElement_x("age"); $age->appendChild($doc->createTextNode($dat['age'])); $b->appendChild($age); $r->appendChild($b); } echo $doc->saveXML();
우리는 PHP의 내장 클래스 DOMDocument를 호출하여 xml을 처리하고 생성했습니다. 최종 생성된 XML 형식을 보려면 여기를 클릭하세요
<?xml version="1.0" encoding="utf-8"?> <root> <data> <name>李王皓</name> <sex>男</sex> <age>21</age> </data> ... </root>
XML 형식 데이터 가져오기
이제 제3자로부터 학생 정보를 얻고 싶다고 가정합니다. 데이터 형식은 XML입니다. PHP를 사용하여 XML을 구문 분석한 다음 구문 분석된 데이터를 로컬 데이터베이스에 표시해야 합니다. 여기서 중요한 단계는 XML을 구문 분석하는 것입니다.
PHP에는 XML을 구문 분석하는 다양한 방법이 있습니다. PHP는 xml 파일의 노드를 순차적으로 탐색할 수 있는 내장 XMLReader 클래스를 제공합니다. 커서가 전체 파일의 노드를 이동하며 필요한 콘텐츠를 가져오는 것을 상상할 수 있습니다. . XMLReader를 사용하는 것은 특히 매우 큰 XML 데이터를 읽는 데 효율적입니다. 다른 방법에 비해 XMLReader를 사용하면 메모리가 거의 소모되지 않습니다.
header("Content-type:text/html; Charset=utf-8"); $url = "http://www.helloweba.com/demo/importXML/createXML.php"; $reader = new XMLReader(); //实例化XMLReader $reader->open($url); //获取xml $i=1; while ($reader->read()) { if ($reader->nodeType == XMLReader::TEXT) { //判断node类型 $m = $i%3; if($m==1) $name = $reader->value; //读取node值 if($m==2) $sex = $reader->value; if($m==0){ $age = $reader->value; $arr[] = array( 'name' => $name, 'sex' => $sex, 'age' => $age ); } $i++; } } //print_r($arr);
데이터 이름, 성별, 나이를 구분하기 위해 $i%3을 사용하여 모듈러스를 결정하는데, 이는 획득한 xml에서 노드 데이터 아래의 정보가 3개의 하위 노드로 존재하기 때문입니다.
더 많은 PHP 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다. "PHP XML 파일 작업 기술 요약", "PHP 날짜 및 시간 사용 요약 ", "php 객체지향 프로그래밍 입문 튜토리얼", "php 문자열(문자열) 사용법 요약", "php mysql 데이터베이스 작업 입문 튜토리얼 " 및 "PHP의 일반적인 데이터베이스 운영 기술 요약》
이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.