PHPでページごとに3つのXMLデータを読み取るにはどうすればよいですか?
次のコードは、「9.xml」のすべての shortdesc フィールドを読み出すことができます:
----------------------------- - -----------------------------------------------
< ; ?php
$xml_array=simplexml_load_file('9.xml'); // XML のデータを配列オブジェクトに読み込みます
foreach($xml_array as $tmp){
echo $tmp->shortdesc." < br>";
}
?>
-------------------------------------- -- -----------------------------------------------
理由膨大なデータです。実現したいのは、各ページに 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."
"
}
これが出力になります
$page = ($_GET['page'] - 1) * 3;
for($i=$page; $i<$page+3; $i++) {
echo $ xml[$i]->shortdesc."
";
これが最初の出力方法です
foreach($xml_array as $tmp){
echo $tmp->gt;shortdesc."
";
}
これは出力方法です
$page = ( $_GET[ 'page'] - 1) * 3;
for($i=$page; $i<$page+3; $i++) {
echo $xml[$i]->shortdesc."< br>" ; ;
}
// 配列を取得します
$xml_array=simplexml_load_file('9.xml');
// 項目番号から始めます。ページングを要求しませんでしたか? ページングにはデータの開始位置とオフセットが必要です。
// このデータの開始位置は $page です。ページ 2 が必要だと仮定し、パラメーター $_GET['page'] === 2
// (2-1)*3 は 3 を渡します。これは配列のキー値でデータを取得するもので、配列のキー値は0から始まります。 0,1,2 が最初のページ、3,4,5 が 2 番目のページです
$page = ($_GET['page'] - 1) * 3
// 3 回ループして $i の値を計算します。それぞれの時間はそれぞれ 3、4、5 です。すると、上記のキー値 3, 4, 5 を持つデータになります
for($i=$page; $i<$page+ 3; $i++) {
echo $xml[$i]->shortdesc. "
";
}
// 次のページのリンクに渡されるパラメータは $_GET['page'] + 1 です
このループ ステートメントはすでに理解していますが、まだ質問があります。 $xml [$i]" はどこから来たのですか?足りない文はありますか?教えてください、ありがとう!
ボスのコードは十分に明確です
// 配列を取得します
$xml_array=simplexml_load_file('9.xml');
// 項目番号から始めます。ページングを要求しませんでしたか? ページングにはデータの開始位置とオフセットが必要です。
// このデータの開始位置は $page です。ページ 2 が必要だと仮定し、パラメーター $_GET['page'] === 2
// (2-1)*3 は 3 を渡します。これは配列のキー値でデータを取得するためです。配列のキー値は...
$xml[$i] は $xml_array[$i] です。擬似コードも同じ意味です
$xml[$i] は $xml_array[$i] です。疑似コード、意味は同じです
簡略化するために、結果もエラープロンプトも含まない次のコードを 1 つだけ表示します:
-------------- - ------------------------------------------------- - ----------------------------
$xml_array=simplexml_load_file('9.xml'); XML 内のデータは配列オブジェクトに読み込まれます
$page = 3;
for($i=$page; $i<$page+3; $i++) {
echo $xml[$i]-> "
";
}
---------------------------------- -- ------------------------------------------------ -- --
次のコードを使用したところ、エラー メッセージは次のとおりでした。「警告: main() [function.main]: 0 個の要素のみが D:wwwrootjupiter418appwwwroottempdx1.php の 66 行目に存在する場合、要素 dataroot 番号 3 を追加できません」
-------------------------------------------------- - -------
$xml_array=simplexml_load_file('9.xml'); // XML のデータを配列オブジェクトに読み込みます
$page = 3; i=$page; $i<$page+3; $i++) {
echo $xml_array[$i]->shortdesc."
";
-- ------------------------------------------------ -- -----
アドバイスをお願いします!
以下があるため:
$xml_array=simplexml_load_file('9.xml'); //XML でデータを読み取り、
だからこそ $xml_array[$i]-> ;shortdesc を持っています。それについては、配列です 実際、simplexml_load_file によって返される構造では、最初のレベルは配列ではありません 9. [$i] の具体的な内容を知る必要があります。疑似コード、意味は同じです
簡略化するために、結果もエラー プロンプトも含まない次のコードを 1 つだけ表示します。
... XML コードを投稿して見てください。
9.xml の内容は次のとおりです:
------------------------
;shortdesc>
また、さらに深まりました。桃の花が散ったわけではありませんが、それに応じて減少していきます。春風になびく凧は、私たちの清明節への思いを表しています。 ]]>
/new>鐘は私の挨拶、歌は私の祝福、春の花は私のグリーティングカード、ワインは私の投げキッス、そよ風は私のハグ、幸福は私の贈り物です!楽しいお出かけを!清明節おめでとうございます! ]]>
/link>
この日は、テキストメッセージ 2012 年の清明節には、いつものように空を飛んでいることを願っています。友達からの挨拶も忘れません。 ]&gt&gt; ;";
}
ドキュメントの内容を出力できません
これが唯一の方法です
foreach($xml_array->news->new as $tmp){
echo $tmp->shortdesc."
";
}
そして $xml_array->news->new は配列なので、
$xml = $xml_array->news ->new;
$page = min(3, count($xml) -3);
for($i=$page; $i echo $xml[$i ]->shortdesc."
"; 成立しました
辛抱強く答えていただき、誠にありがとうございます
待つ必要はありません、あなたは私のデータを盗みました、私は名前を変更しただけです!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。
