xml|オリジナル
// XML に詳しくありません。アノテーション内の XML の記述が間違っている可能性があります。
// これを実装する場合は、一部のデータを変更する必要があります。条件によってあまりクエリされないものは XML で保存できます
// たとえば、仮想コミュニティのユーザー情報は、通常、ユーザー自身または他のユーザーが USERNAME を指定した場合にのみ表示されます
// 残りのコストは、オープン、クエリです。 、データセットを解釈し、毎回データベースを閉じます。
define("enter",chr(13).chr(10));
class DATA_XML //キー! ! !カスタム クラス
var $parser; //XML インタープリタ
var $on; // ルート要素
var $Data = array();要素配列
function DATA_XML($filename,$root) //クラスの初期関数 filename ファイル名、root ルート要素
{
$this->root = $root; //初期ルート要素
$this-> ;parser = xml_parser_create();//解釈オブジェクトを作成
xml_set_object(&$this->parser,&$this);//オブジェクトを設定
xml_set_element_handler($this->parser,"tag_on","tag_off") ;/ /要素管理関数を設定します
xml_set_character_data_handler($this->parser, "getdata") //データ管理イベントを設定します
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); //大文字と小文字を厳密に区別する必要があります
if ( file_exists($filename) ) //ファイルは見つかりましたか?
{//Find
$fp = fopen($filename,"r"); //読み取り専用で開きます
$c = fread($fp,filesize($filename)) //データを読み取ります
fclose($fp) );//Close
$this->parse($c); //解釈オブジェクトを設定します
}
else
{
echo "ooooo"; ? !デバッグに使用されているようです。else
}
}
function parse($data)//説明 function
{
xml_parse($this->parser,$data); を削除するだけです。 function tag_on($parser,$tag,$attributes) // 見つかった要素トリガー関数
{
$this->on = true // すでにトリガーされています
$this->tags = $tag;
//echo $ tag;
}
function tag_off($parser,$tag) //要素関数
{
$this->on = false; //要素関数
}
function getdata($parser,$ cdata) //要素を取得します
{
if($this->on && $this->tags!=$this->root)
{// 確認したほうが良いです (今要素の先頭であるかどうか) 、ルート要素ではないですか? )
$this->Data[$this->tags]=trim($cdata); !タグ付きの配列テーブルを作成し、配列要素にデータを追加します
//echorim($cdata);
//echo $this->tags;
//echo "n";
}
}
function check( $str)
{//文字をチェック
if( strlen($str)<1)//null 文字の場合
return ' ';//Return ' '
else
return $str;//それ以外の場合は元のパスを返します (そうしないと XML に終了タグがないように見えます)
}
function saveas($filename)//名前を付けて保存
{
$c='' .enter;
// 言うまでもなく、enter は、define("enter",chr(13).chr(10));
$c.="<".$this->root です。 "> ; ". ENTER;
// まずルート要素を設定します
For (reset ($ this-& gt; data); $ i = key ($ this- & gt; data) ))
{//すべてのデータのリストを開始します
$c.= "<".$i.">".$this->check($this->Data[$i])." < /".$i.">".enter;
// 配列テーブル名を要素ラベルとして使用し、データ内容を追加します
}
//echo $c;
$c.=" ".$ this->root.">".enter;//終了タグ
$fp = fopen( $filename , "w" );//ファイルを書き込む
fwrite($fp,$c);
fclose ($ fp);
}
};
/*XML ファイルに新たにキーを設定します
$xml = new DATA_XML(path."arm.xml","DATA"/*ルート要素*/);
$xml ->Data["UserName"] = "Guan Yu" ( $xml );
// ファイルを読み取ります
$ Xml = new data_xml (path. "Arm.xml", "data");
echo $ xml-& gt; // 表示? ... Path."arm.xml");//上書き保存
*/
?>