ウィリアムのいたずらの開発日記

ウィリアムのいたずらが、コンピューター関係について、思ったことを好き勝手に書いているブログです。

PHPでXMLを出すプログラムを作ってみましたで、ロリポップで実行すると。。

2005-11-17 21:32:06 | JavaとWeb

 最近、PHPのお勉強をはじめました。
 ということで、PHPでプログラムつくってみました。

 こんなプログラム。
 みなさん、Webからフォームの内容をメールで送りますよね。
 でも、いちいちメールでくるのは、めんどう。
 サーバーに、XML形式で書き出しておいて、あとでFTPでそのXMLファイルをうけとるんでいいよ!っていうことも、ありますよね。

 そんな場合のために、フォームで入力された内容を、XMLで書き出すプログラムをつくってみました。
 データを入力してもらう、ユーザーフォームは、こんなかんじ
<HTML>
<BODY>
<form method="post" action="testfile.php">
username:<input type="text" name="username">
<input type="submit" name="submit" value="実行">
</form>
</BODY>
</HTML>


 で、testfile.phpというファイルにPOSTで飛ばしている。そのtestfile.phpの内容は、こんなかんじ。
<HTML>
<BODY>

<?php
	include("xmlwrite.php");
	xml_write("./test/test.xml","doc","Shift_JIS",$_POST);
?>
かきだしました
</BODY>
</HTML>


つまり、実際のXML書き出しの中身は、xmlwrite.phpというファイルの中に、
xml_wtriteという関数で書いている。
その関数の
 第一引数は、書き出し先ファイル名(xmlファイル)
 第二引数は、ルートのタグ(docというタグがルート)
 第三引数は、日本語のエンコード(今回は、Shift_JIS)
 第四引数は、書き出すデータを連想配列の形で(今回は、POSTの中に入ってるデータ全部)
ということになります。

で、実際のxml書き出しプログラムである、xmlwrite.phpの中身は、こちら

</tb>
<?php

//*=====================================================*/
//	引数をXML書き出し				*/
//	引数 	fname	書き出しファイル名		*/
//		roottag	ルートのタグ名		*/
//		encode	日本語エンコード		*/
//		val	書き出し内容(連想配列)	*/
//*=====================================================*/
function xml_write($fname,$roottag,$encode,$val)
{
	$file = fopen($fname,"w");

		//------------------------------//
		//	XMLヘッダ書き出し    //
		//------------------------------//
	$buf ="<?xml version=\"1.0\" encoding=\"" . $encode."\" ?> \r\n";
	fputs($file,$buf);

		//------------------------------//
		//	XMLルート書き出し    //
		//------------------------------//
	fputs($file,"<".$roottag.">\r\n");

		//------------------------------//
		//	XML本文書き出し	    //
		//------------------------------//
	foreach($val as $key => $oneval)
	{
		fputs($file,"<".$key.">" . $oneval . "</".$key.">\r\n");
	}


		//------------------------------//
		//	XMLルート終了	    //
		//------------------------------//
	fputs($file,"</".$roottag.">\r\n");

	fclose($file);
}
?>


で、このとき、testfile.phpで、書き出し先を、./test/test.xmlとしているので、testというフォルダをつくって実行すれば、うまくいきそうである。

 普通うまくいく。
 
でも、ロリポップではうまくいかない。

その理由は。。。長くなったので、次の記事で書く。
この記事についてブログを書く
この記事をはてなブックマークに追加
« バレーボールとソフト開発の... | トップ | ロリポップでPHP、ファイ... »
最近の画像もっと見る

あわせて読む