0

私は単純なcmsを開発しています.いくつかのリンクを含む可能性のあるデータベースに段落を保存したい場合がありますが、データベースにhtmlコードを保存したくない場合は、次のようにしたい:

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

次に、php を使用して次のようなリンクを生成します。

いくつかのテキスト、いくつかのテキスト <a href="http://an-external-site.com/keyword">keyword</a> いくつかのテキストといくつかのテキスト

それで、それを行う方法は?たとえば preg_replace() で

また、たとえば、事前定義された変数を使用して、サイト内の内部ページを指す URL を設定する方法はありますか?

一部のテキスト、一部のテキスト ||キーワード||MS/キーワード|| いくつかのテキストといくつかのテキスト

どっちが:

いくつかのテキスト、いくつかのテキスト <a href="http://mysite.com/keyword">keyword</a> いくつかのテキストといくつかのテキスト

ここで、MS は私のサイトを指します。たとえばhttp://mysite.com/

したがって、ここでphp関数はパターンを取得し、例1のように完全なURLを単純に使用するか、MSをhttp://mysite.com/に等しい事前定義された変数に置き換えるかを決定します

ありがとう。

4

1 に答える 1

1

プロジェクトで HTML 以外のコードを直接取得するには、 bbcodeなどのクラスを使用することをお勧めします。

それでも正規表現を使用したい場合は、次のようなものを使用できます。

$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);
于 2012-04-26T13:13:58.297 に答える