Webエンジニアの雄大です。
リダイレクト先のドメインをチェックするために、正規表現を使うときが多いと思いますが、自分自身、正規表現にあまり強くないので、サンプルのプログラムを書いてみました。
<html> <head> <meta charset="UTF-8" /> <title>サンプル</title> </head> <body> <table border="2"> <tr bgcolor="#AAAAPP"> <th>パターン</th> <th>文字列</th> <th>マッチ</th> </tr> <?php $ptr = array("php", "^https?:\/\/phpdaisuki\.com\/?[a-zA-Z]*$", "^(https?|ftp) (:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$"); $str = array("http://phpdaisuki.com/", "https://phpdaisuki.com/aaa", "https://phpdaisuki.com","//phpdaisuki.com.php"); foreach($ptr as $valueptr){ foreach($str as $valuestr){ print "<tr><td>{$valueptr}</td><td>{$valuestr}</td>"; $mt = preg_match("/".$valueptr."/", $valuestr) ? "○": "×"; print "<td>{$mt}</td></tr>\n"; } } ?> </table> </body> </html>
結果はこんな感じです。
サンプル
$ptrのパターンや$strの文字列の部分を書き換えれば、どのパターンがどの文字列にマッチするのかが、わかります。
コメント