最近、小さなプログラムを作成する場合、正規表現を使用してユーザーが入力したテキスト内の URL アドレスを照合し、その URL アドレスをクリック可能なリンクに置き換える必要があります。 URL アドレスのマッチングは、誰もが検証処理でよく使用するものだと思います。これは、私が統合した比較的完全な式です。
この式は、http、https、ftp、ftps の URL アドレスおよび IP アドレスと一致します。これはまだ比較的完全な URL アドレス照合計算です。この式を使用して、ユーザーのメッセージの URL アドレスをクリック可能なリンクに置き換える 2 つの小さな関数を作成しました。URL をリンクに置き換えるには、それほど難しいことはありません。
JavaScript バージョン:
};
PHP バージョン:
関数 replace_URLtolink($text) {
// URL のようなものを取得します...
$urls = array();
// パターンを構築します
$scheme = '(https?://|ftps?://)?';
$www = '([w] .)';
$local = 'ローカルホスト';
$ip = '(d{1,3}.d{1,3}.d{1,3}.d{1,3})';
$name = '([w0-9] )';
$tld = '(w{2,4})';
$port = '(:[0-9] )?';
$the_rest = '(/?([w#!:.? =&%@!-/] ))?';
$pattern = $scheme.'('.$ip.$port.'|'.$www.$name.$tld.$port.'|'.$local.$port.')'.$the_rest;
$pattern = '/'.$pattern.'/is';
// URL を取得します
$c = preg_match_all($pattern, $text, $m);
if ($c) {
$urls = $m[0];
}
// すべての URL を置き換えます
if (! empty($urls)) {
foreach ($urls として $url) {
$pos = strpos('http://', $url);
if (($pos && $pos != 0) || !$pos) {
$fullurl = 'http://'.$url;
} else {
$fullurl = $url;
}
$link = ''.$url.'';
$text = str_replace($url, $link, $text);
}
}
$text を返す;
}