2012-04-26 11 views
0

私は簡単なCMSを開発していますが、いくつかのリンクを含む可能性のあるデータベースに段落を保存したいが、データベースにHTMLコードを保存したくないpregリンクを生成するために置き換えます

一部のテキスト、一部のテキスト||キーワード|| http://an-external-site.com/keyword ||その後、いくつかのテキストといくつかのテキスト

と、このようなリンクを生成するためにPHPを使用します。

一部のテキスト、テキスト<のhref =「http://an-external-site.com/keyword」>キーワード</a >一部のテキストと一部のテキスト

それでは、どのようにするのですか?例えばにpreg_replace()で

とは、事前定義された変数を使用してサイト内の内部ページへのURLのポイントを持っている方法は、たとえば

一部のテキスト、テキスト||キーワードに、そこにある|| MS /キーワード||いくつかのテキストとなり、いくつかのテキスト

一部のテキスト、テキスト<のhref =「http://mysite.com/keyword」>キーワード</>いくつかのテキストといくつかのテキスト

MSは

そこでここでは、PHPの関数はパターンを取得し、単に例1のように完全なURLを使用するか、等しい事前に定義された変数にMSを交換するかどうかを決定する例http://mysite.com/のために自分のサイトを参照

http://mysite.com/

ありがとうございます。

答えて

1

bbcodeのようなクラスを使用して、プロジェクトで非HTMLコードを直接取得することをお勧めします。

あなたはまだあなたがこのようなものを使用することができます正規表現を使用したい場合は、次のアイデアのための

$pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi'; 
while (preg_match($pattern, $row, $txt)) 
{ 
    /* $txt[3] holds the link. */ 
    echo $txt[3]."\n"; 

    $row = $txt[1]." here was a link ".$txt[6]; 
} 

/* print $row */ 
print "<br>".nl2br($row); 
+0

おかげでいますが、機能が見つける必要がある段落に使用するパターンを言及しなかったとして、それがどのように動作するはずですが|| ... || ... || – medk

関連する問題