PHP 掲示板文中の URL を自動でリンク化

ne4 Post in web,Tags: ,

正規表現で変換するんだけど、自分であれを打ち込むのが嫌で、ついついコピペ。
すると、うまく動かない。
結局、エンコード違いの影響でダメだということが判明。DreamWeaver なんかで コーディングしたのが間違いだったのか。
とりあえず、最近は Mac で作業しているので、mi を使ってエンコード合わせたらうまく動いた。

// $str にURLが含まれていたらリンク
function autoLinker($str)
{
$pat_sub = preg_quote(‘-._~%:/?#[]@!$&\'()*+,;=’, ‘/’); // 正規表現向けのエスケープ処理
$pat  = ‘/((http|https):\/\/[0-9a-z’ . $pat_sub . ‘]+)/i’; // 正規表現パターン
$rep  = ‘<a href=”\\1″ target=”_blank”>\\1</a>’; // \\1が正規表現にマッチした文字列に置き換わります

$str = preg_replace ($pat, $rep, $str); // 実処理
return $str;
}

DreamWeaver だと、preg_quoteで処理する部分をシングルクオートで括ると、中にあるシングルクオートと反応して
表示が滅茶苦茶になるので、ダブルクオートに変更する必要有り。

$pat_sub = preg_quote(“-._~%:/?#[]@!mce_markeramp;\'()*+,;=”, “/”);

« Prev: :Next »

Comments are closed.