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

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

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

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

Q&A

1回答

497閲覧

PHP DomXpath で特定要素配下にある画像パスを取得する方法について

marshmallowy

総合スコア204

PHP

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

0グッド

0クリップ

投稿2019/07/01 13:36

前提・実現したいこと

特定の要素の配下にある画像パスを取得を試みてます。
Xpathが正しいのかわかりませんが、配列が空になります。
下記でおかしな点などはありますでしょうか。

回答よろしくお願いします。

該当のソースコード

HTML

1<div id="itemslider-new"> 2 <div class="owl-wrapper-outer"> 3 <div class="owl-wrapper"> 4 <div class="owl-item"> 5 <div class="item"> 6 <div class="product-image-wrapper" style="max-width:196px;"> 7 <a href="https://www.example.com/japanese/cramshell-cr02002"> 8 <img class="lazyOwl" src="https://www.example.com/media/catalog/product/cache/1/small_image/196x/040ec09b1e35df139433887a97daa66f/c/r/cr02002-1.jpg"> 9 </a> 10 </div> 11 </div> 12 </div> 13 <div class="owl-item"> 14 <div class="item"> 15 <div class="product-image-wrapper" style="max-width:196px;"> 16 <a href="https://www.example.com/japanese/cramshell-cr02002"> 17 <img class="lazyOwl" src="https://www.example.com/media/catalog/product/cache/1/small_image/196x/040ec09b1e35df139433887a97daa66f/c/r/cr02002-2.jpg"> 18 </a> 19 </div> 20 </div> 21 </div> 22 <div class="owl-item"> 23 <div class="item"> 24 <div class="product-image-wrapper" style="max-width:196px;"> 25 <a href="https://www.example.com/japanese/cramshell-cr02002"> 26 <img class="lazyOwl" src="https://www.example.com/media/catalog/product/cache/1/small_image/196x/040ec09b1e35df139433887a97daa66f/c/r/cr02002-3.jpg"> 27 </a> 28 </div> 29 </div> 30 </div> 31 <div class="owl-item"> 32 <div class="item"> 33 <div class="product-image-wrapper" style="max-width:196px;"> 34 <a href="https://www.example.com/japanese/cramshell-cr02002"> 35 <img class="lazyOwl" src="https://www.example.com/media/catalog/product/cache/1/small_image/196x/040ec09b1e35df139433887a97daa66f/c/r/cr02002-4.jpg"> 36 </a> 37 </div> 38 </div> 39 </div> 40 <div class="owl-item"> 41 <div class="item"> 42 <div class="product-image-wrapper" style="max-width:196px;"> 43 <a href="https://www.example.com/japanese/cramshell-cr02002"> 44 <img class="lazyOwl" src="https://www.example.com/media/catalog/product/cache/1/small_image/196x/040ec09b1e35df139433887a97daa66f/c/r/cr02002-5.jpg"> 45 </a> 46 </div> 47 </div> 48 </div> 49 </div> 50 </div> 51</div>
<?php ```PHP $url = 'https://www.example.com/japanese'; $timeout = 60; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); $result = curl_exec($ch); curl_close($ch); $dom = new DOMDocument(); $dom->loadHTML($result); $xpath = new DOMXPath($dom); $entries = $xpath->query('//div[@id="itemslider-new"]/div[@class="owl-wrapper-outer"]/div[@class="owl-wrapper"]/div[@class="owl-item"]'); $results = array(); foreach ($entries as $entry) { $result = array(); $result['img'] = $xpath->query("//img", $entry)->item(0)->getAttribute('src'); $results[] = $result; } ```

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

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

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

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

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

guest

回答1

0

xpathは間違ってないみたいですね
デバッグする時に$resultと$results間違って出力している可能性は?
curt自体のレスポンスは返って来てますか?
もしcurlのレスポンスが期待するものではなくて証明書周りが怪しいのなら以下を追加してみるとか
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, false);

投稿2019/07/01 15:02

hentaiman

総合スコア6421

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

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

marshmallowy

2019/07/01 16:06

回答ありがとうございます。 確認しみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問