ホームページ >バックエンド開発 >PHPチュートリアル >PHPでページごとに3つのXMLデータを読み取るにはどうすればよいですか?

PHPでページごとに3つのXMLデータを読み取るにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:02:36800ブラウズ

次のコードは、「9.xml」のすべての shortdesc フィールドを読み出すことができます:
----------------------------- - -----------------------------------------------
< ; ?php
$xml_array=simplexml_load_file('9.xml'); // XML のデータを配列オブジェクトに読み込みます

foreach($xml_array as $tmp){
echo $tmp->shortdesc." 2a87851f231f0546ed00aa1a4409038e";
}

?>
-------------------------------------- -- -----------------------------------------------
理由膨大なデータです。実現したいのは、各ページに 3 つのデータだけを表示することです。「次へ」ボタンをクリックすると、すべてのデータが表示されるまで次の 3 つのデータが表示されます。再度「次へ」ボタンをクリックしてもページは変わりません。これを達成する方法を教えてください。コードもあったほうが良いです、ありがとうございます。


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

それなら、xml ではなくデータベースに保存すべきです

それなら、xml ではなくデータベースに保存すべきです
+1
保存しますデータベースに、 使用制限

をデータベースに保存できれば、操作がとても便利になります。そうでない場合は、解析されたデータを最初にキャッシュするのが最善です

<?php$pagenum = isset($_GET['pagenum']) ? $_GET['pagenum'] : 1;$pagesize = 3;// 将数据存在session,当然如果你有更好的条件话就不需要这么干了,存到共享内存当中session_start();if( !isset($_SESSION['data']) || !is_array($_SESSION['data']) ){    $xml_array=simplexml_load_file('9.xml');    // 将数据按$pagesize分为多个数组保存    $_SESSION['data'] = array_chunk($xml_array, $pagesize);}foreach($_SESSION['data'][($pagenum-1)] as $displaydata ){    echo "I am data: {display}";}$nextpagenum = $pagenum + 1;echo <<<next   <a href="?pagenum={$nextpagenum}" >下一页</a>next;?>

これが元の出力方法です
foreach($xml_array as $tmp){
echo $tmp->shortdesc."79075cf95a592758d7169d803d45d91dshortdesc."0c6dc11e160d3b678d68754cc175188a";

私のレベルが限られているので、よくわかりません。

これが最初の出力方法です
foreach($xml_array as $tmp){
echo $tmp->gt;shortdesc."c832562c56600cd37ab77010b7fd2945shortdesc."76cf194baa7848b976878d01cbf4cf63shortdesc. " cc2eab5c56b979ac432ebae0949f346f "f19d8071a5a056c43714bf956fba42f4shortdesc."0c6dc11e160d3b678d68754cc175188a";
-- ------------------------------------------------ -- -----

アドバイスをお願いします!

以下があるため:
$xml_array=simplexml_load_file('9.xml'); //XML でデータを読み取り、

配列オブジェクトに


だからこそ $xml_array[$i]-> ;shortdesc を持っています。それについては、配列です 実際、simplexml_load_file によって返される構造では、最初のレベルは配列ではありません 9. [$i] の具体的な内容を知る必要があります。疑似コード、意味は同じです


簡略化するために、結果もエラー プロンプトも含まない次のコードを 1 つだけ表示します。

------------- -- ------------------------------------------------ -- -----------------------------

e2596ced5108c1027576bf6ff4c72f25
;shortdesc>
また、さらに深まりました。桃の花が散ったわけではありませんが、それに応じて減少していきます。春風になびく凧は、私たちの清明節への思いを表しています。 ]]>
df8c533ba80cf70b0204bcdf2d5a025b
この日は、テキストメッセージ 2012 年の清明節には、いつものように空を飛んでいることを願っています。友達からの挨拶も忘れません。 ]&gt&gt; ;";
}
ドキュメントの内容を出力できません
これが唯一の方法です
foreach($xml_array->news->new as $tmp){
echo $tmp->shortdesc."0c6dc11e160d3b678d68754cc175188a ";
}

そして $xml_array->news->new は配列なので、
$xml = $xml_array->news ->new;
$page = min(3, count($xml) -3);
for($i=$page; $i echo $xml[$i ]->shortdesc."
"; 成立しました

辛抱強く答えていただき、誠にありがとうございます

待つ必要はありません、あなたは私のデータを盗みました、私は名前を変更しただけです!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。