phpporser
v0.3
また、ヘッドレスブラウジングサポートでこのライブラリを使用する場合は、ヘッドレスクロムPHPとChromium実行可能ファイルも必要です(PackagistバージョンのStandartを含む)。
$ composer require shamanhead/phpporser
これは、Windows、MacOS、Linuxで動作する場合があります。
したがって、公式のChromiumブラウザのダウンロードページに移動してダウンロードしてください。
この手順を実行した後、アーカイブを開梱して必要な場所に移動します。
次に、スクリプト内のパスを指定します。
require_once " vendor/autoload.php " ;
use HeadlessChromium Page ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' file:///home/shamanhead/dev/porser/phpporser-master/test.html ' );
$ dom -> setBrowserPath ( ' PATH_TO_CHROME ' );あなたが大丈夫だった場合、パーサーは動作します。このステップ中にエラーが発生した場合は、ここで見に行くことができます。問題を解決するための解決策があります。それ以外の場合は、ここまたはヘッドレスクロムPHPページで新しい問題を開きます。
まず、ページの上に「コンピューターサイエンス」文字列を取得してみましょう。
<?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' https://en.wikipedia.org/wiki/Computer_science ' );
print_r ( $ dom -> tag ( ' h1 ' )-> class ( ' firstHeading ' )-> text ()-> merge ());
?>うまくいきます!しかし、どうですか?説明しましょう:
<?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' href to file ' );
print_r ( $ dom -> tag ( ' h1 ' )-> array ()); //finds by tag name 'h1'
print_r ( $ dom -> id ( ' firstHeading ' )-> array ()); //finds by id name 'firstHeading'
print_r ( $ dom -> class ( ' wrapper__main ' )-> array ()); //finds by class name 'wrapper_main'
print_r ( $ dom -> custom ([ ' name ' , ' button ' ])-> array ()); //finds by 'name' attribute value 'button'
?>検索方法を互いに組み合わせて、特別な方法で要素を見つけることができます。
<?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' href to file ' );
print_r ( $ dom -> class ( ' main ' )-> id ( ' firstHeading ' )-> tag ( ' h1 ' )-> array ());
?> <?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' href to file ' );
$ divText = $ dom -> tag ( ' div ' )-> id ( ' someDiv ' )-> text ();
$ divText -> contents (); //Returns all text in array form.
$ divText -> merge ( ' symbol ' ); //Returns all text in string form with 'symbol' separator
//'n' by default.
$ divText -> first (); //Returns first founded text.
$ divText -> last (); //Returns last founded text.
?>