ホームページ > バックエンド開発 > PHPチュートリアル > PHPは改善のためにRSSファイルを生成します

PHPは改善のためにRSSファイルを生成します

WBOY
リリース: 2016-06-23 14:27:59
オリジナル
984 人が閲覧しました

DOMDocumentコンポーネントを使ってRSSファイルを生成するPHPコードを書いたのですが、膨らみすぎてクラスにカプセル化したかったのですが失敗したので相談にきました
生成されたRSSは大体こんな感じです



1 user_pass>123 wood
http://www.xxx.com <説明>id: 1,user_name:,pass:123,real_name:Wood



2 小木
http:// www.xxx.com
id:2,user_name:,pass:456,real_name:小木




コードが冗長すぎます



$doc = new DOMDocument('1.0','utf-8');
$doc->formatOutput = true


// タグを作成します
// RSS タグを作成します
$rss = $ doc->createElement('rss')
//チャンネルの下にタグを作成します
$channel ;
$clink => {
- アウト'''''''''-' OUTpsOUTpsmbpsps アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウト アウトアウトdoc->createElement('link');
$idescription = $doc->createElement('description ');
$real_name = $doc- >createElement('real_name');
/*ここでデータベース ループ呼び出しが必要です*/
//コンテンツを作成します
//item の下にラベルのコンテンツを作成します
$ c_ititle = $doc->createTextNode( $val['user_id']);
$c_ilink = $doc->createTextNode('http://www.xxx.com');
$c_idescription = $doc-> ;createTextNode('id:'.$ val['user_id'].',user_name:'.$val['user_name'].',pass:'.$val['pass'].',real_name:'. $val['real_name']);
//ユーザーの下にタグのコンテンツを作成します
$c_user_id = $doc->createTextNode($val['user_id']);
$c_user_name = $doc->createTextNode( $val['user_name']); ;
$c_user_pass = $doc->createTextNode($val['pass']);$c_real_name /属性を作成します
$attributes = $doc->createAttribute('id');
/*ここでデータベース ループ呼び出しが必要です*/
//item第1レベルタグの要素内容が継承される
$ititle->appendChild ($c_ititle);
$ilink->appendChild($c_ilink);
$idescription->appendChild($c_idescription); // ユーザーの第 1 レベルのタグの要素の内容は継承
$user_id->appendChild($c_user_id ; /
// 継承 c $ Channel-& GT; Appendchild ($ item);

// ITEM 1 レベルのラベル継承
$ item- & gt; APPENDCHILD ($ユーザー); タイトル) ;
$item->appendChild($idescription);
$attributes->appendChild($a_id); /
$item->appendChild($attributes)


// アイテムレベルのタグの継承
$user->appendChild($user_id); ->appendChild(
$c_ctitle = $doc->createTextNode('test rss');
$c_clink = $doc->createTextNode('http://www.xxx.com');
$c_cdescription = $doc->createTextNode ('This is a test rss');
// RSS バージョン属性値を作成
$rss_attribute_c = $doc->createTextNode('2.0'); // RSS バージョン属性を作成
$rss_attribute = $doc- >createAttribute('version');


//Inherit
//チャネルの第 1 レベルのタグの要素の内容が継承されます
$ctitle->appendChild($c_ctitle); clink->appendChild($c_clink);
$cdescription->appendChild($c_cdescription)
$rss_attribute->appendChild($rss_attribute_c);




//Ta gチャンネルの第 1 レベルのタグの継承
$channel->appendChild($clink);







//ルートノードを作成
$rss->appendChild($rss_attribute);


//xml を保存ファイル
$doc->save('hello .xml');


function connect_sql(){
$con = mysql_connect('localhost','root','123456') または die('mysql エラー :' .mysql_error());
mysql_select_db('test ');
mysql_query('set names utf8');
$sql = "SELECT * FROM test"; sql);
$ content = array();
while($row = mysql_fetch_array($query)){
$content[] = $row; }


方法を教えてくださいそれをクラスに変換してみました、いつもいいえ


ディスカッション (解決策) に返信

なぜ dom を使うのですか?
文字列を直接組み立てることはできないのでしょうか?いいね、いいね、いいね

なぜ dom を使用するのですか?
文字列を直接組み立てることはできないのでしょうか?たとえば、

$ar = array(  array(    'id' => 1,    'user' => array('user_id' => 1, 'user_name' => '', 'user_pass' => 123, 'real_name' => 'aa'),     'title' => 1,    'link' => 'http://www.xxx.com',    'description' => 'id:1,user_name:,pass:123,real_name:aa',  ),  array(    'id' => 2,    'user' => array('user_id' => 2, 'user_name' => '', 'user_pass' => 456, 'real_name' => 'bb'),     'title' => 2,    'link' => 'http://www.xxx.com',    'description' => 'id:1,user_name:,pass:456,real_name:bb',  ),);
ログイン後にコピー
<rss version="2.0"><item id="1"><id>1</id><user user_id="1" user_name="" user_pass="123" real_name="aa"><title>1</title><link>http://www.xxx.com</link><description>id:1,user_name:,pass:123,real_name:aa</description></item><item id="2"><id>2</id><user user_id="2" user_name="" user_pass="456" real_name="bb"><title>2</title><link>http://www.xxx.com</link><description>id:1,user_name:,pass:456,real_name:bb</description></item>
ログイン後にコピー

出力を直接エコーし、それを XML ファイルに書き込むのは簡単ですが、PHP には独自の domdocument コンポーネントがあるため、生成されたファイルを直接つなぎ合わせるよりも明らかに利点があると思います。まだわかりません

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート