ホームページ >バックエンド開発 >PHPチュートリアル >とても便利な XML クラスです。 !オリジナル_PHP チュートリアル

とても便利な XML クラスです。 !オリジナル_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:11:301062ブラウズ


// 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.="root.">".enter;//終了タグ
$fp = fopen( $filename , "w" );//ファイルを書き込む
fwrite($fp,$c);
fclose ($ fp);

}
};




/*XML ファイルに新たにキーを設定します
$xml = new DATA_XML(path."arm.xml","DATA"/*ルート要素*/);
$xml ->Data["UserName"] = "関羽";
;ファイルを読む $xml = ? ... Path."arm.xml");//上書き保存
*/
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/313924.html技術記事 ? // XML に詳しくないので、アノテーション内の XML の記述が間違っている可能性があります。 // これは単なるアイデアであり、一般的にクエリされないデータは少し変更する必要があります。 XML で保存されます //...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。