RSS ファイルを生成するために PHP を改善してください
DOMDocument コンポーネントを使用して RSS ファイルを生成する PHP コードを書きましたが、クラスにカプセル化したいのですが、成功しません。質問するためにここに来ました。アドバイスを求めて
生成後の RSS は次のようになります
<チャンネル>
<アイテムid="1">
http://www.xxx.com
アイテム>
http://www.xxx.com
アイテム>
もちろん、コードは冗長すぎます
$doc = 新しい DOMDocument('1.0','utf-8');
$doc->formatOutput = true;
//タグを作成
// RSSタグを作成
$rss = $doc->createElement('rss');
// チャンネルの下にタグを作成します
$channel = $doc->createElement('channel');
$ctitle = $doc->createElement('title');
$clink = $doc->createElement('link');
$cdescription = $doc->createElement('description');
foreach ($arr as $key => $val) {
//アイテムタグを作成
$item = $doc->createElement('item');
// item
の下にサブタグタグを作成します
$user = $doc->createElement('user');
$ititle = $doc->createElement('title');
$ilink = $doc->createElement('link');
$idescription = $doc->createElement('description');
//ユーザータグを作成します
$user_id = $doc->createElement('user_id');
$user_name = $doc->createElement('user_name');
$user_pass = $doc->createElement('user_pass');
$real_name = $doc->createElement('real_name');
/*ここでデータベース ループ呼び出しが必要になります*/
//コンテンツを作成します
// item
の下にラベルのコンテンツを作成します
$c_ittitle = $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']);
// user
の下にタグのコンテンツを作成します
$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 = $doc->createTextNode($val['real_name']);
//アイテム属性値を作成
$a_id = $doc->createTextNode($val['user_id']);
//属性を作成します
$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);
$user_name->appendChild($c_user_name);
$user_pass->appendChild($c_user_pass);
$real_name->appendChild($c_real_name);
/*ここでデータベース ループ呼び出しが必要になります*/
//継承
$channel->appendChild($item);
//アイテムレベルタグのタグ継承
$item->appendChild($user);
$item->appendChild($ititle);
$item->appendChild($ilink);
$item->appendChild($idescription);
//id=1
$attributes->appendChild($a_id);
//
$item->appendChild($attributes);
//アイテムレベルタグのタグ継承
$user->appendChild($user_id);
$user->appendChild($user_name);
$user->appendChild($user_pass);
$user->appendChild($real_name);