phpQueryを紹介します。 これは有名なjavascript freemark- jQueryの phpバージョンです。
著者は最善を尽くし、必要なほぼすべてを移植しました。
- セレクター
- 属性
- 横断
- 操作
- アヤックス
- イベント
- 公益事業
- プラグインポート
彼女が何ができるか見てみましょう。
そして、彼女は兄jQueryができることをすべて知っています。
実際のところ、まず最初に、%username%.habrahabr.ru / blog /で停止することはありません。
これを行うにはかなり多くの方法があります。
phpQuery :: newDocument ($ html、$ contentType = null)マークアップから新しいドキュメントを作成します。 $ contentTypeを指定しなかった場合、マークアップに基づいて決定されます。 うまくいかない場合は、utf-8のtext / htmlであると想定します。
phpQuery :: newDocumentFile($ file、$ contentType = null)ファイルから新しいドキュメントを作成します。 newDocument()と同じように動作します
phpQuery :: newDocumentHTML ($ html、$ charset = 'utf-8')
phpQuery :: newDocumentXHTML ($ html、$ charset = 'utf-8')
phpQuery :: newDocumentXML ($ html、$ charset = 'utf-8')
phpQuery :: newDocumentPHP ($ html、$ contentType = null)詳細については、 こちらをご覧ください 。
phpQuery :: newDocumentFileHTML ($ファイル、$文字セット= 'utf-8')
phpQuery :: newDocumentFileXHTML ($ファイル、$文字セット= 'utf-8')
phpQuery :: newDocumentFileXML ($ファイル、$文字セット= 'utf-8')
phpQuery :: newDocumentFilePHP ($ファイル、$ contentType)詳細については、 こちらをご覧ください 。
まあ、私たちは遠くまで行きません。 さあ、ユーザー名%、ブログの投稿を解析してください。 まず、 phpQueryをダウンロードします。 次に、index.phpのようなものを作成します
<?php require ('phpQuery/phpQuery.php'); $habrablog = file_get_contents('http://%username%.habrahabr.ru/blog/'); $document = phpQuery::newDocument($habrablog); $hentry = $document->find('div.hentry'); foreach ($hentry as $el) { $pq = pq($el); // $ jQuery $pq->find('h2.entry-title > a.blog')->attr('href', 'http://%username%.habrahabr.ru/blog/')->html('%username%'); // $pq->find('div.entry-info')->remove(); // $tags = $pq->find('ul.tags > li > a'); $tags->append(': ')->prepend(' :'); // $pq->find('div.content')->prepend('<br />')->prepend($tags); // } echo $hentry; ?>
これは、できることのほんの一部です。
また、jQueryServerのようなものが付属しています。 本質的に、これはphpQueryと同じですが、クライアント側にあります。
デモ例
<script type="text/javascript"> jQuery.serverConfig.url = '/phpQuery/jQueryServer/jQueryServer.php'; function demo() { $.server({ url: document.location.toString(), dataType: 'json' }) .find('li') .client(function(response){ $.each(response, function(k, li){ $('ul').append(li); }); }); } $(function(){ $('ul').append('<li>above LIs will be downloaded and appended below in 2 seconds...</li>'); setTimeout(demo, 2000); }); </script>
このオプションは非常に実用的であり、PHPコードを記述することなく、数秒で複数のサイトのコンテンツを解析できます。
関連資料
Googleコード
公式ブログ
次の記事に興味がある場合は、許可されたユーザーのみが利用できるサイトの解析を検討したいと思います(もちろん、キャプチャはありません)。 はい、phpQueryでもこれを行うことができますが、Zend Frameworkの助けが必要です。