ホームページ >バックエンド開発 >PHPチュートリアル >phpmaster | phpqueryを使用したサーバー側のHTML処理
要素の選択と操作
上記のコードは、Divタグを使用して基本的なHTMLドキュメントを作成します。ライブラリは、ドキュメントを作成するさまざまな方法を提供します。私は最もシンプルなものを使用しましたが、demo.phpとドキュメントで他のものを見つけることができます。
次に、順序付けられていないリストを作成し、HTMLドキュメントに追加する必要があります。
順序付けられていないリストがあることがわかります。ただし、すべての要素は単一の列にあり、デフォルトです。リストの均等な要素を2番目の列に移動する必要があります。
<span><span><?php </span></span><span><span>require("phpQuery/phpQuery.php"); </span></span><span><span>$doc = phpQuery<span>::</span>newDocument("<div/>");</span></span>簡単な例を完成させました。これで、HTML Generation Server側を簡素化するためにPhpqueryを使用する方法を知っている必要があります。私たちがしたことはすべて、$ docオブジェクトに対してすべてのアクションを行ったことを除いて、jqueryで行われるのとほぼ同じです。
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div"]->append("<ul><li>Product Name</li><li>Price</li></ul>"); </span></span><span><span>$products = array( </span></span><span> <span>array("Product 1","<span><span></span>"</span>), </span></span><span> <span>array("Product 2","<span><span></span>"</span>), </span></span><span> <span>array("Product 3","<span><span></span>"</span>)); </span></span><span> </span><span><span>foreach($products as $key=>$product) { </span></span><span> <span>$doc["div ul"]->append("<li><span><span>$product[0]</span></li><li><span>$product[1]</span></li>"</span>); </span></span><span><span>} </span></span><span><span>print $doc;</span></span>phpquery
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div ul"]->attr("style", "width:420px;"); </span></span><span><span>$doc["div ul"]->find("li:even")->attr("style","width:200px; float:left; padding:5px; list-style:none;"); </span></span><span><span>$doc["div ul"]->find("li:odd")->attr("style","width:200px; float:left; padding:5px; list-style:none;");</span></span>の重要性 Phpqueryの機能について説明しましたが、クライアント側にjQueryがあるときにライブラリが必要な理由を疑問に思う必要があります。実用的なシナリオを使用して、phpqueryの重要性を示します。 次の状況を考慮してください。次のようなテーブルがあると仮定します。これには、インタビューに行ったWeb開発者に関するすべての情報があります。
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div ul"]->find("li:nth-child(4n)")->attr("style","background:#EEE; width:200px; float:left; padding:5px; list-style:none;"); </span></span><span><span>$doc["div ul"]->find("li:nth-child(4n-1)")->attr("style","background:#EEE; width:200px; float:left; padding:5px; list-style:none;"); </span></span><span><span>$doc["div ul"]->find("li:lt(1)")->attr("style","background:#CFCFCF; width:200px; float:left; padding:5px; list-style:none;");</span></span>次に、このシナリオで開発する必要がある要件のリストを次に示します。
開発者は、純粋なPHPコードを使用して要件を満たすために、次のソリューションを提供する場合があります。
<span><span><?php </span></span><span><span>require("phpQuery/phpQuery.php"); </span></span><span><span>$doc = phpQuery<span>::</span>newDocument("<div/>");</span></span>それでは、phpqueryを使用してそれを行い、コードと利点を比較しましょう。
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div"]->append("<ul><li>Product Name</li><li>Price</li></ul>"); </span></span><span><span>$products = array( </span></span><span> <span>array("Product 1","<span><span></span>"</span>), </span></span><span> <span>array("Product 2","<span><span></span>"</span>), </span></span><span> <span>array("Product 3","<span><span></span>"</span>)); </span></span><span> </span><span><span>foreach($products as $key=>$product) { </span></span><span> <span>$doc["div ul"]->append("<li><span><span>$product[0]</span></li><li><span>$product[1]</span></li>"</span>); </span></span><span><span>} </span></span><span><span>print $doc;</span></span>すでにjqueryと協力することの知識があれば、phpqueryは簡単です。上記のコードのほとんどは自明です。ただし、PQ()は現在のドキュメントを指していることを言及したいと思います。他のすべてはjQuery機能です。 どちらも似ていますが、Phpqueryを使用するコードは、より良い品質と拡張性を提供します。後で追加の機能を追加する必要がある場合、元のコードがどれほど脆くなるかを考えてください。実務経験に基づいて、マークに追加の検証を追加したいと仮定します。そのシナリオでは、別のメソッドを追加し、foreachループ内に返された結果を割り当てる必要があります。つまり、既に書かれたコードを変更し、閉鎖された原則に違反する必要があります。
ソフトウェアエンティティ(クラス、モジュール、関数など)は、拡張機能のために開かれている必要がありますが、変更のために閉じている必要があります。phpqueryを使用する2番目の例では、コードは最初に検証なしで生成され、次にテーブルを各関数に渡すと、変更が元のテーブルに配置されます。各関数は他の関数に影響しないため、新しい要件の新しい関数を記述し、他の関数とともにループの外側で使用できます。すでに既存のコードを変更していません。これは装飾と呼ばれます:
デコレーターパターンは、動作を既存のオブジェクトに動的に追加できるようにするデザインパターンです。要約
他のPHPライブラリでphpqueryを使用できますか?柔軟で相互運用可能になるように設計されているため、PHP開発者のツールキットに最適なツールになります。
以上がphpmaster | phpqueryを使用したサーバー側のHTML処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。