phpの正規表現でURLの取得方法を教えてください

このQ&Aのポイント
  • phpの正規表現を使用して、特定のURLを取得する方法を教えてください。
  • テキストの中から「hoge.jp/」で終わっているURLを取得する方法を教えてください。
  • 以下の例のテキストからは、2つのURLが取得できるはずです。
回答を見る
  • ベストアンサー

phpの正規表現

いつもお世話になっています。 テキストの中から「hoge.jp/」で終わっているURLだけを取得したいです。以下なら2行目の2つだけを。 phpと正規表現で取得できる方法をご教授下さい! 1.<a href="ttp://nono-com.hoge.jp/index.php">いらないブログ</a> 2.<p><a href="ttp://aaa-com.hoge.jp/">aaaのブログ</a><a href="ttp://bbb-com.hoge.jp/">bbbのブログ</a></p> 3.<a href="ttp://nono-com.hoge.jp/iranai/blog/">いらないブログ</a> 宜しくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • cyanberry
  • ベストアンサー率50% (117/230)
回答No.1

URLは"ttp://"で始まるってことで良いんですよね? httpやhttpsにも対応する場合には正規表現が変わるので。 ↓サンプル ======================================= <?php $text = <<<TEXT 1.<a href="ttp://nono-com.hoge.jp/index.php">いらないブログ</a> 2.<p><a href="ttp://aaa-com.hoge.jp/">aaaのブログ</a><a href="ttp://bbb-com.hoge.jp/">bbbのブログ</a></p> 3.<a href="ttp://nono-com.hoge.jp/iranai/blog/">いらないブログ</a> TEXT; mb_ereg_search_init($text, '(ttp://[^/]*hoge\.jp/)"'); while (is_array($result = mb_ereg_search_regs())) { echo $result[1]."<br>\n"; } =======================================

関連するQ&A

  • ◆配列

    いつもお世話になっています。 [0] => ttp://aaa.hoge.jp/1.html [1] => ttp://bbb.hoge.jp/1.html [2] => ttp://ccc.hoge.jp/1.html [3] => ttp://ddd.hoge.jp/1.html [4] => ttp://aaa.hoge.jp/2.html [5] => ttp://aaa.hoge.jp/3.html [6] => ttp://aaa.hoge.jp/4.html [7] => ttp://bbb.hoge.jp/2.html [8] => ttp://bbb.hoge.jp/3.html [9] => ttp://bbb.hoge.jp/4.html [10]=> ttp://bbb.hoge.jp/5.html 上記の配列があります。例えば同じURLの場合3件まで取得しもう一つ配列を作成したい。 上記の配列だと下のような配列にしたい。 [0] => ttp://aaa.hoge.jp/1.html [1] => ttp://bbb.hoge.jp/1.html [2] => ttp://ccc.hoge.jp/1.html [3] => ttp://ddd.hoge.jp/1.html [4] => ttp://aaa.hoge.jp/2.html [5] => ttp://aaa.hoge.jp/3.html [6] => ttp://bbb.hoge.jp/2.html [7] => ttp://bbb.hoge.jp/3.html ループで色々探っているのですが。。。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現の文字列否定

    すいません、PHPをたまたま使用しているので、 PHPのカテゴリで質問させていただきますが、 正規表現で特定の文字列の集合を まとめて否定することはできないのでしょうか。 例えば、<p class="hoge"><a href="test.html">aaa</a></p> という部分があって、 hogeのクラスが付いている行のhrefのURIだけ取得したいのですが、 <p class="hoge"">という部分が取り除けません。 イメージ的には[^(<p class=\"hoge\">)]という感じで、 否定できるのかな~と思っていたんですが、 これはできないんですよね。 まとまった文字列を否定することはでいないのでしょうか。 ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • 簡単でお恥ずかしいのですが・・正規表現

    文字列:aaa="あいうえお" bbb から あいうえお だけ、抽出したい $a= "aaa=\"あいうえお\" bbb"; mb_ereg("aaa=\"(.*)\" bbb",$a,$b);  print "$b[1]"; ではうまいてきません。 $a= "aaa=\"あいうえお\" bbb"; mb_ereg("aaa=\"(.*)bbb",$a,$b);  print "$b[1]"; では、 あいうえお" になってしまいます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現で置換

    正規表現の書き方を忘れてしまったので、教えてくださーい。 $line に以下の1行(改行なし)が入っているとして、 <a href="/aaa.pl">aaa</a><a href="/bbb.pl">bbb</a><a href="/ccc.pl">ccc</a> href="/cgi-bin/... に変換したいのです。 <a href="/cgi-bin/aaa.pl">aaa</a><a href="/cgi-bin/bbb.pl">bbb</a><a href="/cgi-bin/ccc.pl">ccc</a> てなカンジ。 よろしくです。

    • ベストアンサー
    • Perl
  • phpファイルで"?"と"&"を含むリンクが張れない

    a.phpでphpロジック外部に書いたHTMLリンクタグ <a href ="http://aaa.**.jp/bbb.php?id=231fa&pass=1">リンク</a> がブラウザに表示できません。 "?"と"&"と除いた <a href ="http://aaa.**.jp/bbb.php">リンク</a> はもちろんきちんと表示できるのですが。。 "&"を"&amp;"と変更してもだめでした。 "?"の変換文字コードはないみたいですし。。。 どなたかご教授ください。 宜しくお願いします。

    • 締切済み
    • PHP
  • URL書き換え

    mod_rewriteを使ってURL書き換えを行っています。 ttp://aaa.jp/aaa/xxx.html ↓ ttp://aaa.jp/bbb/xxx.html と書き換えようと考えています。 ttp://aaa.jp/bbb/xxx.html と直接指定されたときは大丈夫なのですが、 ttp://aaa.jp/aaa/xxx.html と指定されたときには、 ttp://aaa.jp/bbb/xxx.html に書き換えたいのですが、なかなかうまきいきません。 どうすればできるのでしょうか? (リンク表示にならないためにhttpのhをとってます)

  • クラス名の振られた要素の文字列取得方法

    Javascriptで特定のクラス名の付けられた要素から、タグに挟まれた文字列を取得する方法を教えてください。 ある自動生成されるページに、以下のように決まったクラス名が振られる要素があります。 これらの要素から"AAA"や"BBB"の部分を取得するにはどうすればいいでしょうか? 教えてください。 <a href="hoge.html" class="fuga">AAA</a> <p class="piyo">BBB</p>

  • htmlの修正のため、正規表現で2つほど質問です。

    秀丸を使っています。 下記の2つをやりたいのですが、いまひとつうまくいきません。 ご教授いただけると幸いです。 <p><br /></p> <a href="a.html">あいうえお</a><br /> <a href="k.html">かきくけこ</a><br /> <p><br /></p> ↓ <p><br /></p> あいうえお<br /> かきくけこ<br /> <p><br /></p> <img alt="" src="../images/aaa.jpg" /> <img alt="" src="../images/bbb.jpg" /> ↓ <a href="index.html"><img border="0" alt="" src="../images/aaa.jpg" /></a> <a href="index.html"><img border="0" alt="" src="../images/bbb.jpg" /></a>

  • PHPの囲みかた

    以下のPHPが動かない、画面が真っ白になってしまうのですがなぜでしょうか? また<?php ?>でPHPは囲みますが、一画面で何回も囲んでも構わないでしょうか? <input name="button" type="button" onclick="location.href='/abc.php'" value="abc"> <?php  print ('<input type="button" value="aaa" onClick="location.href='/aaa.php'">'); ?> <input type="button" value="bbb" onClick="location.href='/bbb.php'">

    • 締切済み
    • PHP
  • ◆wgetのオプション

    いつもお世話になっています。 wgetでサブドメインが異なるサイトを1回のコマンドで取得できますか? ttp://AAA.hoge.jp/ ttp://BBB.hoge.jp/ ttp://CCC.hoge.jp/ 現在は上記のように1つ1つ把握し、回数分wgetをループさせているのですが、ttp://hoge.jp/というドメインが分かっていれば、1コマンドで全てのサブドメインを含め取得できないのでしょうか? 宜しくお願いします。

専門家に質問してみよう