$pattern = "/([\w-]+)@([\w\.-]+)\b/";これが、用意したパターンです。――だいたい、ここで「げっ、正規表現難しい。無理無理」とあきらめてしまう人が多いんですが、正直、そんな必要はありません。正規表現パターンで検索すると、メールアドレスとか、URLとか、割とよく使われるパターンを公開してくれている人はたくさんいるんです。そうしたパターンをコピーして利用すれば、とりあえずパターンが作れなくても正規表現は利用できます。それから少しずつ自分で勉強していけばいいんですよ。
$flg = preg_match_all($pattern,$data,$matchs);これがパターンマッチを実行している部分ですね。これ自体は、別に難しい物はありません。この$matchsという変数に、パターンマッチした結果が入っているのです。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<?php
if ($_POST != null){
$url = $_POST['text1'];
$lines = file($url);
$data = implode($lines);
// パターンマッチ
$pattern = "/([\w-]+)@([\w\.-]+)\b/";
$flg = preg_match_all($pattern,$data,$matchs);
if ($flg != false){
$result = "";
foreach($matchs[0] as $key => $val){
$result .= $val . "\n";
}
} else {
$result = "ないよ。";
}
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<title>sample page</title>
</head>
<body>
<h1>Hello PHP!</h1>
<form method="post" action="./index.php">
<input type="text" name="text1" size="40"
value="<?php echo htmlspecialchars($url); ?>"><br>
<textarea name="area1" cols="30" rows="5"
><?php echo $result; ?></textarea><br>
<input type="submit">
</form>
<hr>
</body>
</html>
| << 前へ | 次へ >> |