• ベストアンサー

urlを変数に入れたい。

掲示板のコメント欄にURLが記入された場合は、一番初めに書き込まれたURLを変数に格納したいのですが、方法が考えつけません。 以下の書込み内容の場合で例えますと、 -------------------------------------------------- あいうえおhttp://hoge.com/かきくけこhttp://hoge.jp/ さしすせそhttp://hoge.net/たちつてと -------------------------------------------------- $FORM{'comment'}から一番初めに書き込まれた文字列 (http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+) を抽出して、変数に格納。 $url = 'http://hoge.com/'; このような感じです。 お手数ですが、宜しくお願いいたします。

  • MKNET
  • お礼率94% (89/94)
  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

if( $FORM{'comment'} =~ /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/){ $url=$&; print "$url\n";} # 複数を取り出したければ @url = $FORM{'comment'} =~ /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/g; foreach(@url){print "$_\n";} exit;

MKNET
質問者

お礼

ご回答有難うございます。 大変助かりました。

関連するQ&A

  • PHPでFORMから来る変数名を変数にするには

    PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

    • 締切済み
    • PHP
  • 変数内のURL文字列を置換させたい

    変数に格納した文字列のうち、URLを以下のようにして 置換しようとしましたが、置換されませんでした。 $html = str_replace("www.sample.com/hoge", "hoge.hogeoge.net", $html); str_replace の使い方が間違っているのでしょうか。 どうぞ宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • <a href>タグ内のURL抽出

    正規表現初心者です。ご教授よろしくお願いします。 <a href=http://hoge.com/hoge>hoge</a> <a href=http://hoge.com/hoge>hoge<br>hoge</a> 以上の<a href>リンクから、それぞれURLだけを抽出したいのですが うまくできません。 ereg("<a href=(.+)>(.+)</a>",$hoge,$a); echo $a[1]; で、1つ目はURL抽出できたのですが 2つ目のように<br>があると『 http://hoge.com>hoge 』と表示されてしまいます。 このような場合、どのようにして抽出すればよいのでしょうか??

    • ベストアンサー
    • PHP
  • GET変数をディレクトリのように表示する方法

    お世話になります。 phpでのお話ですが、通常GETで変数を持たせる場合は http://www.hoge.com/index.php?a=1&b=2 http://www.hoge.com/?a=1&b=2  というURLになるかと思います。 これをディレクトリの一部のように 下記のように表示している場合がありますが、 http://www.hoge.com/1/2/ これはどのようにすればできるのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 変数の分解

    いつもお世話になってます。本題なのですが 下のような値が入った変数($hoge)があるですが $hoge="url=http://hogehoge.com/&a=100$b=200"; GETのように扱う方法、または $urlと$aと$bに分解することは出来ないでしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • 変数の受け渡し

    質問.1 hoge.phpから header('Location: hoge2.php');でページ移動させた場合、hoge.phpで使っていた変数をhoge2.phpに渡す方法ってありますか?クッキーやSESSION以外の方法があればおねがします、formの値をhoge2.phpに渡したいのです 質問2 クッキーはhoge.phpでセットした後、同じページ内で削除はできないのですか?

    • ベストアンサー
    • PHP
  • 効率良くURLを拾う正規表現

    掲示板に投稿された文章から、効率良くURL(Email add含む)を拾い、<a>タグを仕込むには、置換処理の中でどのように正規表現を組むのが安全かつ効率的ですか? 例:  私のHPはhttp://www.hoge.com/です。  お問い合わせはhoge@hoge.comまで。         ↓  私のHPは<a href="http://www.hoge.com/">http://www.hoge.com/</a>です。  お問い合わせは<a href="mailto:hoge@hoge.com">hoge@hoge.com</a>まで。

    • ベストアンサー
    • PHP
  • 一つの行にURLが複数ある場合の、URL抽出方法は?

    htmファイルの中から、リンクされたURL情報を抽出するのが今回の目的です。 ご相談したいのは、URL情報が一つの行中に複数ある場合の抽出方法です。 ちなみに「一つの行にある<a href>リンクが一つだけ」の場合ですと、正規表現 <a +href=('|\").*('|\") *> でURLデータを正しく抽出できるところまで来ています。 ですが一つの行にある<a href>リンクが2つ以上あった場合は、最長一致のルールに従って、うまく抽出できません。 具体的に申し上げると、 ケース1:<a href="www.hoge.htm">ほげ</a> <a href="www.hoge.htm"> が抽出できる。 ケース2:<a href="www.hoge.htm">ほげ</a><a href="www.hogehoge.htm">ほげほげ</a> <a href="www.hoge.htm">ほげ</a><a href="www.hogehoge.htm"> が抽出される。(本当は2つを別々に取り出したい)

  • サイトリニューアルに伴うURL変更について

    SEOを意識して今まで運営してきたサイトがあるのですが、わけあってサイトをリニューアルすることになりました。 その際、ドメインは変わらないのですが、以下のようにSEO対策していたページのURLを変更しなくてはなりません。 旧URLから新URLへSEOのパワーを引継ぐための施策で考えられる方法をできるだけ多く教えていただけませんでしょうか? ※ちなみにディレクトリ名だけ変わる場合と、.htmlに対してSEOをしていたものをディレクトリで終わるURLにしたものと2パターンについて教えてください。 よろしくお願いいたします。 (1)ディレクトリ名のみ変更 旧URL⇒http://hogehoge.com/hoge1/hoge2/ 新URL⇒http://hogehoge.com/hoge1/aa_hoge2/ (2).htmlのページ⇒ディレクトリで終わるURL 旧URL⇒http://hogehoge.com/hoge1/hoge2/hoge3.html 新URL⇒http://hogehoge.com/hoge1/aa_hoge2/hoge3/

    • ベストアンサー
    • SEO
  • preg_match と正規表現 で URL抽出

    HTMLのデータが入っている変数 $data から、一番初めにでてきた<img>タグに囲まれるURLと、そこに<a>タグがある場合はそのリンク先のURLを取得させたいのですが、もし<a>のない場合のケースでどう条件付ければよいかわからず、困っています。 <? $data = "<html><head></head><body>こんにちは、元気ですか? <a href=\"http://www.hoge.co.jp\"><img=\"http://www.hoge.co.jp/hoge.jpg\"></a> <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を取得させるようにしたいのですが可能でしょうか? もし何かご存知の方おられましたらどうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう