HTMLのデータが入っている変数 $data から、一番初めにでてきた<img>タグに囲まれるURLと、そこに<a>タグがある場合はそのリンク先のURLを取得させたいのですが、もし<a>のない場合のケースでどう条件付ければよいかわからず、困っています。
<?
$data = "<html><head></head><body>こんにちは、元気ですか?
<a href=\"http://www.hoge.co.jp\"><img=\"http://www.hoge.c …
<img=\"http://www.hoge02.co.jp/hoge02.jpg\">
</body></html>";
if (preg_match("#<a href=\"(.+)\"><img=\"(.+)\"></a>#", $txt, $reg)){
$link = $reg[1];
$url = $reg[2];
}
echo "URL = {$url}<br> LINK = {$link}";
?>
この場合、一番初めに出てきた hoge.jpg のURLとLINK両方取得してくれますが、もし hoge02.jpg が先に来た場合、そのURLを取得させるようにしたいのですが可能でしょうか?
もし何かご存知の方おられましたらどうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
かなり緩いマッチ条件ですが、以下でどうでしょうか。
$data = "<html><head></head><body>こんにちは、元気ですか?<a href=\"http://www.hoge.co.jp\"><img=\"http://www.hoge.c …
if (preg_match("/(?:<a href=\"([^\"]+)\">)?\s*<img=\"([^\"]+)\">/", $data, $reg))
{
$link = $reg[1];
$url = $reg[2];
}
・<img="URL"> ではなく <img src="URL">が正しい?
・$dataが、不特定の人が投稿する掲示板記事のようなものなら、
$link、$urlがURLとして妥当な形式かを確認し、HTMLエスケープ
をしてからechoするべきですね(クロスサイトスクリプティング
を避けるためです)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- PHP タグの追加 1 2022/08/19 11:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数にHTMLを代入する場合
-
JSFタグのfタグとは
-
print "<img src=\\"0.jpg\\/>\...
-
objective-cでのHTMLタグ表示に...
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
VBAのコマンドボタンの文字列の...
-
ファイルから読み取った改行文...
-
メッセージボックスで1025文字...
-
jsp 改行コードで改行させて表...
-
全角英数文字が嫌われる理由を...
-
全角括弧と全角読点の間隔を狭...
-
Excel関数「COUNTIF」で”文字”...
-
記号は半角と全角どちらがよい...
-
JAVA System.out.println の ...
-
COBOLの改行
-
C++で空Enterの入力を判...
-
SJISで取得した半角カナをUTF-8...
-
文字の入力で横バー上段、中断...
-
PHPで変数から1行目だけを取得...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
javascriptの正規表現でhtmlか...
-
タグにはさまれている文字以外...
-
VBSでのhtmlタグ要素名の置換
-
objective-cでのHTMLタグ表示に...
-
phpの正規表現でstyle="●●"を削...
-
Strutsでリンクを動的に生成したい
-
PHPスクレイピングが上手くいき...
-
htmlのソースからテーブルの値...
-
JSFタグのfタグとは
-
ASP.NET(C#)とhtmlの#include
-
あるタグから対応するタグまで...
-
preg_replaceでの正規表現によ...
-
eclipseより、タスク・タグの使...
-
HTMLファイルの書き換え
-
Nvuで作成したhtmlをコピペして...
-
htmlタグ間の特定文字置換
-
[正規表現][入れ子]ネストされ...
おすすめ情報