1

<a>"strings"</a>したがって、配列を文字列に、別の配列を URLに置き換えるために、「文字列」を置き換えたいと思います。最初はすべてが魅力のように機能し、タグ内ではなく最初の一致を置き換えます > < 、しかし、配列に文字列とURLを入力し始めたとき、「ファンタジーゲーム」を置き換える場合-><a href="ASDFASDF">Fantasy games</a>そして「」を置き換える必要があることがわかりましたFantasy」では、単に正規表現の >string< チェックをスキップして先に進み、とにかく置換して、html コードを壊し、解析エラーを作成します。

したがって、コンテンツに >string< が含まれている場合、それは置き換えられませんが、 preg_replace を使用すると、間違って実行した場合のようになるため、何か間違ったことを行っているか、パラメーターまたは何かが欠落していると推測しています。配列の次の要素を置き換えるときに、 >string< のように検出しません。

コードは次のとおりです。

// DB content
// $Keywords=array("Fantasy games", "Fantasy");
// $URL=array("http://www.whatever.com", "http://www.whatever2.com");

$i=0;
// Insert the links and returns the processed content.
foreach ($SQLResult as $row){
    $Keywords[$i]="/[^>](".$row->Keyword.")[^<]/i";
    $URLS[$i]=' <a href="'.$row->URL.'">$1</a> ';
    $i++;
}   
$Content=preg_replace($Keywords, $URLS, $Content, 1);
4

1 に答える 1