2009-05-25 7 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を使用してください。

EDITは:

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

オープンをやって:使用、切り捨てるに。 wは書き込み用に開かれ、0の長さに切り捨てられます。 bはバイナリモードを意味し、Windowsはあなたの行末を混乱させません。

+0

これは仲間さん、ありがとうございました。 – Kevin

+0

追加:xml_encode()を使用してコード内のいくつかの行を保存することができます。 – Joset

-2

また、XMLファイルの内容を適切にエスケープする必要があります。 htmlentities()は、件名の読み上げを開始するのに適しています。または、ちょうど使用することができます<![CDATA[ ... ]]>

0

単純なファイル機能だけで、PHP.netのWebサイトでチェックしてください。

2

file_put_contentsは、文字列をファイルにダンプする最も簡単な方法です。

+0

これはチャームでも動作します – Kevin

関連する問題