PHPでHTMLをスクレイピングしてjQueryのように操作できるphpQueryで「Interface ‘Countable’ not found in〜」や「Class ‘DOMDocument’ not found」が出た:解決
PHPでHTMLの特定の一部分を取得しようと思うと、大まかに分ければ次の2つに分かれます。
- 自分で解析する方法
- DOMで解析する方法
前者は正規表現などを使って処理するのが一般的でしょう。
その際問題となるのは、不特定のサイトの解析を確実に行うのは大変だろう、という点です。
そこで、DOMをベースにする後者の方が汎用的なのですが、これを通常のPHPで(DOMを使って)行うには実に単調な作業になってしまいます。
そんな手間を省き、まるでJavaScriptライブラリのjQueryのようにデータを扱うことができる、phpQueryというライブラリを使おうとセットアップしたのですが、次の様な2つのエラーが出てしまいました。
- Interface ‘Countable’ not found in /path/to/phpQuery-onefile.php
- Class ‘DOMDocument’ not found
この記事は、上記のエラーへの対応する内容のメモです。
参考:phpQuery
目次
エラーの原因
Countableインターフェースが見つからない
Countableインターフェースがないと言う問題に関しては、CountableインターフェースがPHP 5.1.0以降のバージョンで使えるものだと言うのが原因です。
レンタルサーバーの設定で、それPHP 5.1.0以降のバージョンで動かせるように設定を変更しましょう。
今回使っていたレンタルサーバーのinetdでは、次の内容を.htaccessに記述するタイプの対応方法でした。
Action php-script /.system_cgi/php55.cgi
DOMDocumentクラスが見つからない
DOMDocumentクラスが見つからないのは、利用するライブラリが見つからないのが原因です。
コンパイルオプションでライブラリを静的にリンクし直すか、モジュールの読み込みで対応しましょう。
今回使っていたレンタルサーバーのinetdでは、次の内容をphp.iniに記述するタイプの対応方法でした。
extension=dom.so
まとめ
ライブラリはとても便利なものですが、今回の様に環境に依存する部分があると動かすまでが大変だったりする方も多いと思います。
でも、技術者は環境が作れて一人前です。サーバー類の勉強にもなりますから、せっかくなので身につけてしまいましょう♪
10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント
あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?
私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。
それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。
しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。
そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。
・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!
という方は今すぐ無料でダウンロードしてください。
期間限定で、無料公開しています。
※登録後に表示される利用条件に沿ってご利用ください