2010-12-01 5 views
0

PHP 코드에서 XML 파일을 만드는 데 도움이 필요합니다. 내가 원하는대로 XML을 형성하는 함수를 만들었지 만, 파일에 형성된 XML을 저장하는 방법을 모른다.PHP에서 xml 파일을 만들 때 문제가 발생했습니다

또한 다음 번에 이미 작성한 xml 파일을 업데이트 할 수있는 방법을 알려줄 수도 있습니다.

내 코드는 다음과 같습니다

public function create_xml() 
{ 
    $output = "<?xml version=\"1.0\" encoding=\"utf-8\" ?> "; 
    $output .= "<data>"; 
    $output .= "<news>"; 
    $news_articles = new C7_News(); 
    $db = C7_Bootstrap::getDb(); 
    $foxsport_sql = "SELECT headline, link FROM c7_news 
         WHERE source = 'foxsports' AND category = 'Breaking News' 
         LIMIT 0,4"; 
    $foxsport_rowset = $db->fetchAll($foxsport_sql); 
    $data = array(); 
    foreach($foxsport_rowset as $foxsport_row) 
    { 
     $output .= "<title>"; 
     $output .= "<description>"; 
     $output .= "<![CDATA["; 
     $output .= $foxsport_row['headline']; 
     $output .= "]]>"; 
     $output .= "<link>"; 
     $output .= $foxsport_row['link']; 
     $output .= "</link>"; 
     $output .= "</title>"; 
    } 
    $output .= "</news>"; 
    $output .= "</data>"; 

} 
내가 잘못 너무 일을 할 수

, PLZ 나 XML을 만들 수있는 가장 좋은 방법을 알려주세요.

는 Zeeshan

답변

2

여기에 더 많은 정보를 추가하겠습니다.

또한 다음 번에 이미 작성한 xml 파일을 업데이트 할 수있는 방법을 알려줄 수도 있습니다.

당신은 SimpleXml extension 제공, 업데이트하기 위해 XML을 분석해야하며,을 쉽게 쓰기를 XML 파일을 구문 분석 API을 사용합니다.

나는 뭔가 잘못된 일을하고 있을지도 모르지만, plz는 XML을 만드는 가장 좋은 방법을 알려주고 있습니다.

이 작업을 수행하는 방법에는 여러 가지가 있지만 HTML을 또는 XML (또는 그 문제에 대한 모든 * ML)를 기록 할 경우 나는 "템플릿 엔진"으로 PHP를 사용하는 것을 선호합니다.

<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?> " ?> 
    <?php 
     $news_articles = new C7_News(); 
     $db = C7_Bootstrap::getDb(); 
     $foxsport_sql = "SELECT headline, link FROM c7_news 
        WHERE source = 'foxsports' AND category = 'Breaking News' 
        LIMIT 0,4"; 
     $foxsport_rowset = $db->fetchAll($foxsport_sql); 
    ?> 
    <data> 
     <news> 
     <?php foreach($foxsport_rowset as $foxsport_row): 
     <title> 
      <description> 
      <![CDATA[ 
      <?php echo $foxsport_row['headline'] ?> 
      ]]> 
      </description> 
      <link><?php echo $foxsport_row['link']</link> 
     </title> 
     <?php endforeach; ?> 
     </news> 
    </data> 

이 출력 할 것이다 XML

을 읽을 수 많은 쉽습니다하지만 난 파일에 형성된 XML을 저장하는 방법을 잘 모릅니다.

파일이 저장하는 방법 당신이 include이 "템플릿"또 다른 PHP 파일 특성을가집니다에 관해서는 (템플릿을 가정은 xml_template.php라고합니다) : 다음

ob_start(); 
    include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'xml_template.php'; 
    $output = ob_get_clean(); 

다시이 XML 문자열은 $output이며 변수는 입니다.P : 당신은 파일의 경로에 대한 인수를 전달 할 수 있습니다

file_put_contents($file, $output); 

// If file is missing, it will create it. 
    $file = fopen("file.xml", "w"); 
    fwrite($file, $output); 
    fclose($file); 
0

이 함수의 끝에이 추가 감사드립니다.

// If file is missing, it will create it. 
$file = fopen("file.xml", "w"); 
fwrite($file, $output); 
fclose($file); 
0

사용 : 그 다른 방법에 의해 처리되어야 함을

$stream->create_xml($file); 

또는 이유/class, 예 :

$stream->create_xml(); 
$stream->save_xml($file); 
관련 문제