phpの正規表現でURLの取得方法を教えてください
- 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> 宜しくお願いします。
- gogovamos
- お礼率8% (9/107)
- PHP
- 回答数1
- ありがとう数0
- みんなの回答 (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
- 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> はもちろんきちんと表示できるのですが。。 "&"を"&"と変更してもだめでした。 "?"の変換文字コードはないみたいですし。。。 どなたかご教授ください。 宜しくお願いします。
- 締切済み
- 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をとってます)
- 締切済み
- Linux系OS
- クラス名の振られた要素の文字列取得方法
Javascriptで特定のクラス名の付けられた要素から、タグに挟まれた文字列を取得する方法を教えてください。 ある自動生成されるページに、以下のように決まったクラス名が振られる要素があります。 これらの要素から"AAA"や"BBB"の部分を取得するにはどうすればいいでしょうか? 教えてください。 <a href="hoge.html" class="fuga">AAA</a> <p class="piyo">BBB</p>
- ベストアンサー
- JavaScript
- 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コマンドで全てのサブドメインを含め取得できないのでしょうか? 宜しくお願いします。
- 締切済み
- Linux系OS