xml post로 보내고, 받아 처리

렛츠웹 + 게임/My Tip 2009. 6. 15. 14:23

XML POST 로 보내고 받아 처리 하는 소스
php.ini에서 always_populate_raw_post_data = On 
ini_set("always_populate_raw_post_data", "true");

보내는
<?php

    /*--------------샘플 XML ---------------
<?xml version="1.0" encoding="EUC-KR"?>
<INFO>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>123</enswer_id>
  </KEY>
  <META>
   <title>kim</title>
   <director>tae</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum</name>
    <content_id>jjang</content_id>
   </CP>   
  </LICENSE>
 </CONTENT>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>456</enswer_id>
  </KEY>
  <META>
   <title>kim2</title>
   <director>tae2</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum2</name>
    <content_id>jjang2</content_id>
   </CP>   
  </LICENSE>
 </CONTENT> 
</INFO>
    --------------------------------------*/

    // XML 데이터 생성 - 페이지 인코딩이 euc-kr이라 iconv로 UTF-8 형식으로 변환
    $go_xml  = '<?xml version="1.0" encoding="EUC-KR"?>
<INFO>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>123</enswer_id>
  </KEY>
  <META>
   <title>kim</title>
   <director>tae</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum</name>
    <content_id>jjang</content_id>
   </CP>   
  </LICENSE>
 </CONTENT>
 <CONTENT>
  <command>add</command>
  <KEY>
   <enswer_id>456</enswer_id>
  </KEY>
  <META>
   <title>kim2</title>
   <director>tae2</director>
  </META>
  <LICENSE>
   <CP>
    <name>jum2</name>
    <content_id>jjang2</content_id>
   </CP>   
  </LICENSE>
 </CONTENT>  
</INFO>';


    // fsock으로 POST 전송
    $host = '222...'; //'ip또는 도메인';
    $path = '/파일명.php';
    $xmlData = $go_xml;


    // 헤더를 설정해서 POST로 전송
    $fp = fsockopen($host, '80', $errno, $errstr, 30);
    if($fp)
    {

      $header  = "POST ".$path." HTTP/1.1\r\n";
      $header .= "Host: ".$host."\r\n";
      $header .= "User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n";
      $header .= "Content-type: text/html\r\n";
      $header .= "Content-length: ".strlen($xmlData)."\r\n\r\n";
      $header .= $xmlData."\r\n";

       fputs($fp, $header.$xmlData."\r\n\r\n");

       while(!feof($fp))
      {
           $result .= fgets($fp, 1024);
       }

        fclose($fp);

        echo $result; // 결과를 출력한다.

    }

?>

받는

<?php    
  // raw_post_data 설정
    ini_set("always_populate_raw_post_data", "true");
    // xml 데이터를 받는다
    $receive_xml = $GLOBALS['HTTP_RAW_POST_DATA'];


    /*--------------------------------------
     * XML Parse - simple_XML
    ----------------------------------------*/

    $dom = new DOMDocument;
    $dom->loadXML($receive_xml);

    if (!$dom) {
        echo 'Error while parsing the document';
        exit;
    }
 
    $XML = simplexml_import_dom($dom);

  echo"<pre>";
  print_r($XML);

  $CONTENT=$XML->CONTENT;
  $count = count($CONTENT);
  for($i=0;$i<$count;$i++)
  {
   $command   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->command);
     $enswer_id   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->KEY->enswer_id);
     $title   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->META->title);
     $director   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->META->director);
     $name   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->LICENSE->CP->name);
     $content_id   = iconv('UTF-8','EUC-KR',$CONTENT[$i]->LICENSE->CP->name);
     echo "<br>enswer_id-$enswer_id-$title-$director-$name-$content_id <br>";
    }
?>

'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

추천 아이폰 무료 어플 2.  (0) 2010.01.27
추천 아이폰 무료 어플 1.  (0) 2010.01.27
익스플로러에서 xml 유효성 체크  (0) 2009.04.09
RIP와 IGRP  (0) 2009.01.22
IP 할당 체계와 IP 신청 방법  (0) 2009.01.22
posted by 망차니

설정

트랙백

댓글

익스플로러에서 xml 유효성 체크

렛츠웹 + 게임/My Tip 2009. 4. 9. 10:17

http://download.microsoft.com/download/d/6/9/d69f1a03-7aab-4f6d-9c9b-3c30e8744086/iexmltls.exe

해당 파일을 다운 받습니다.

(설치방법)

1. iexmltls.exe 실행 후

2. Continue

3. NEXT

4. 예(디렉토리가 존재하지 않을 경우 새롭게 생성할지를 물어봅니다. “” 버튼을 클릭합니다.)

5. 닫기

6. 파일 탐색기로 c:\IEXMLTLS 디렉토리를 열어  msxmlval.inf” 파일과 “msxmlvw.inf” 파일을 각각 선택한 후,
    마우스 오른쪽 버튼을 누르면  설치라는 메뉴가 나옵니다. 여기서 설치 메뉴를 선택합니다.

7. 설치하고 윈도우즈를 재시작 합니다.

                   [익스플러러 에서 xml 페이지를 띄우고 마우스 오른쪽시에 유효성 체크 옵션이 생긴다

'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글

추천 아이폰 무료 어플 1.  (0) 2010.01.27
xml post로 보내고, 받아 처리  (0) 2009.06.15
RIP와 IGRP  (0) 2009.01.22
IP 할당 체계와 IP 신청 방법  (0) 2009.01.22
서브넷 (Subnet)과 서브넷 마스크 (mask)  (0) 2009.01.21
posted by 망차니

설정

트랙백

댓글