質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

3370閲覧

【laravel】DOMDocumentクラスが見つからない

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/11/08 02:30

編集2017/11/08 02:30

###わからないこと
いつも大変お世話になっております。
この度URLからXMLを生成し書かれているデータを取得しようとしています。
(クローラーです。)
ただ、DOMDocumentクラスが見つからないというエラーが出ており困っております。
ネット上に転がっているものは試していったのですが、解決しておりません。
どうかご教授お願い致します。

「com.php」 namespace App\Console\Commands; use Illuminate\Console\Command; $jobsUrl = 'https://aaaa'; curl_setopt($ch, CURLOPT_URL, $jobsUrl); $detailRes = curl_exec($ch); // xmlへの変換 $dom = @DOMDocument::loadHTML($detailRes); $xml = simplexml_import_dom($dom);

↑の「DOMDocument」を変数に格納してインスタンス化させることも行ったのですが、今度は「simplexml_import_dom」にて引数がBooleanが与えられていると出てしまい、どうすれば解決するのかわかっておりません。

何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

何点かおかしなところがあります。

  1. DOMDocumentPHP添付のクラスですので、名前空間の中から使う場合はuseするか\DOMDocumentと完全修飾で呼ぶ必要があります。
  2. DOMDocument::loadHTMLはインスタンスメソッドなので、先にインスタンス生成が必要です。また、返り値はbooleanです(返り値ではなく、読み込んだオブジェクトそのものを使ってください)。

php

1$dom = new \DOMDocument(); 2$dom->loadHTML($detailRes); 3$xml = simplexml_import_dom($dom);

投稿2017/11/08 02:35

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/08 02:52

ご回答ありがとうございます。 ただその場合、 「DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 55」 とエラーが出てきてしまいました・・・
maisumakun

2017/11/08 03:02

もとのHTMLがおかしくてもそのまま実行したい場合、@でエラーを止めてください(@$dom->…とします)。元のコードが@ありだったのに抜かしてました。
退会済みユーザー

退会済みユーザー

2017/11/08 03:07

ありがとうございます。 @$dom->loadHTML($detailRes);としたところ、DOMDocumentのクラスが見つからないという状態になってしまいました。
退会済みユーザー

退会済みユーザー

2017/11/08 03:35

失礼いたしました。 上記ですが、別のDOMDocumentに反応していました。 ※エラー行数が不明だったため、発見が遅れてしまいました。
退会済みユーザー

退会済みユーザー

2017/11/08 04:09

この度はご回答ありがとうございました。 最後に「PDO」でも同様のクラスが見つからないとのエラーが出ましたが、対象のPDOにバックスラッシュをつけることで解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問