2009-05-25 4 views
0
<? 
    $MySQLPassword = "indian"; 
    $HostName = "localhost";  
    $UserName = "monty"; 

    mysql_connect($HostName,$UserName,$MySQLPassword) 
    or die("ERROR: Could not connect to database!"); 

    mysql_select_db("sachin") or die("cannot select db"); 

    $keyword = $_POST['keyword']; 
    echo $keyword; 
    /* Execute the query that performs the actual search in the DB: */ 
    $result = mysql_query(" SELECT p.page_url AS url, 
          COUNT(*) AS occurrences 
          FROM page p, word w, occurrence o 
          WHERE p.page_id = o.page_id AND 
          w.word_id = o.word_id AND 
          w.word_word = \"$keyword\" 
          GROUP BY p.page_id 
          ORDER BY occurrences DESC 
          "); 

$output = new DOMDocument(); 
$output->formatOutput = true; 
$output = "<loginsuccess>"; 

for($i = 1; $row = mysql_fetch_array($result); $i++)  { 


$output .="<person><keyword>".$_POST['keyword']."</keyword><name>".$row['url']."</name><occur>".$row['occurrences']."</occur></person>"; 
} 

$output .= "</loginsuccess>"; 
print ($output); 

?> 

출력을 XML로 가져오고 있지만 별도의 XML 파일에 저장해야합니다. 어느 누구도 나를 도와 줄 수 없습니다.PHP를 사용하여 XML 출력

질문 하나 더, ...

나는에 fwrite와 파일에 쓸 수를 사용하고

하지만, 내가 어떻게 파일의 마지막에 쓰는 대신, 파일이 기록 할 때마다 취소 할 수 있습니까? 기존 콘텐츠를 파괴하고 다시 작성해야합니다.

+0

특수 문자를 이스케이프 처리하지 않고 DB에서 XML로 원시 데이터를 출력하면 문제가 발생할 수 있습니다. 특히 당신이 & 문자를 가질 수있는 URL. – PhiLho

답변

4

fwrite을 사용하십시오.

편집 :

$handle = fopen($filename , "wb") 

오픈 일 : 사용, 절단합니다. w는 쓰기 용으로 열려 있고 0 인 길이로 자릅니다. b는 바이너리 모드를 의미하므로 Windows는 라인 끝을 엉망으로 만들지 않습니다.

+0

이것은 일하는 동료, 감사합니다. – Kevin

+0

추가 : xml_encode()를 사용하여 코드의 일부 줄을 저장할 수 있습니다. – Joset

-2

또한 XML 파일의 내용을 제대로 이스케이프하고 싶습니다. htmlentities()은 주제에 대해 읽어보기에 좋은 장소입니다. <![CDATA[ ... ]]>

0

간단한 파일 기능 만 PHP.net 웹 사이트에서 확인하십시오.

2

file_put_contents는 문자열을 파일로 덤프하는 가장 쉬운 방법입니다.

+0

이 하나도 매력과 함께 작동합니다. – Kevin