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

入力されたテキストからメールアドレス抽出するPHPを作りたいのですが、下記の記述では抽出ができません。

どのように文を変えたら抽出できるでしょうか?よろしくお願い致します。



<form action="mail2.php" method="post">
<input type="text" name="text" size="100" value=""/><br />
<input type="submit" name="text" value="テキストからアドレスを抜き出す" />
</form>
<?php
if( preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/",$text,$match));
echo "アドレス-> {$match[0]}\n";
print $arr_str[0]; 
?>

A 回答 (4件)

http://www.google.com/search?hl=ja&q=php%20%E3%8 …
やっぱりみんな 似たようなこと一杯やるみたいだね。
いくつかうまくいきそうなのをつまんでみたら良いと思うよ
    • good
    • 0

実際に、質問文に書いたフォームでテストしているんですか?


もしそうなら、このフォームのテキストフィールドに入力した文字列は $_POST['text'] -> $text には入っていないと思いますけど・・・
    • good
    • 0

確かに、質問文の掲載内容だけでは



「入力される前に抽出しようとしている」

というタイムパラドックスが発生しているようです。
まずは入力された後に抽出してみましょう。
    • good
    • 0

とりあえず、俺は正規表現に関しては詳しくありませんので、本題とは 違うところでツッコませて頂きたいと思います。



違和感を感じたのは ↓の二行。

<input type="text" name="text" size="100" value=""/><br />
<input type="submit" name="text" value="テキストからアドレスを抜き出す" />

まず、submitに name属性。。。んー、まぁ、俺は最近は使わないけど、あっても問題はないかな~。
ん?あれ? name="text" ??
上の行でも 同じこと書いてますな。。。
>>2の人が言ってたのは、この事なのね。きっと。

ブラウザによって挙動が違うのか、W3Cで決められてる事なのか、PHP側の判断なのかは知りませんが、同じ名前があった場合、後の方が優先されるのかもしれませんね。
少なくとも、chrome では これを実行すると テキストボックスに何を入力しようとも、$_POST[text]の中身は「テキストからアドレスを抜き出す」でした。

無駄に話が長くなりましたが、一言で言うと「submit の name 変えてみるといいかも。」って事です。
    • good
    • 0

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