アプリ版:「スタンプのみでお礼する」機能のリリースについて

色々と試すのですが、上手くいかずアドバイス頂けないでしょうか…。

Aというサイトに表示されている特定の箇所、具体的には、

<ul id="hoge">
ここに色々入れ子の表示
</ul>

といった感じで、特定のID内のコンテンツを丸ごと取得して、別ドメインサイトBの任意の箇所に表示させたいのですが、上手くいきません…。
見よう見まねで以下の感じで設定を行って、他にも色々と試してみたのですが…。

<?php $url = file_get_contents("サイトのurl");
if (preg_match('!<ul id="hoge">(.*?)</ul>!s', $url, $disp)) {
echo $disp[1];
}
?>

そもそも、<ul id="hoge">と指定した場合は、これ自体は含まず、こちら以降を取得するのでしょうか?なんとなくそのような動きがみられます…。正規表現の理解も乏しいので困り果てております。

また、取得ID内はulが入れ子になっていて複数回表示されているので、このあたりも上手くいかない現認なのかもしれないです。

頭が凝り固まっているので、file_get_contentsではなくともよいのですが、任意の指定箇所を取得する良い方法がありましたらアドバイスを頂けないでしょうか。

質問者からの補足コメント

  • 解決いたしました。
    やはり、取得している構造が入れ子になって複雑なため、意図しない取得しかできなかったようです。
    閉じタグ部分を一意で特定できる記述に変更したら問題ありませんでした。

      補足日時:2023/01/19 14:32

A 回答 (1件)

ぱっと見ですが、


echo $disp[1];
この配列の引数は1でいいのでしょうか?
$disp[0]
0から始まるのでは?
    • good
    • 0
この回答へのお礼

有難うございます。
前後のulタグは含めたくないので、配列は1で大丈夫です。

お礼日時:2023/01/19 14:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!