値とリンクの配列があり、コンテンツ内の正確な値をリンクで 1 回だけ置き換える必要があります。この preg_replace の場合、次のように役立ちます。
Array (
[0] => Array ( [keyword] => this week [links] => http://google.com )
[1] => Array ( [keyword] =>this [links] => http://yahoo.com )
[2] => Array ( [keyword] => week [links]=> http://this-week.com ) )
)
テキストは次のとおりです。
$content = "**This week** I'd like to go to the seaside, but the weather is not good enough. Next **week** will be better. **This** is a kind of great news.**This week** I'd like to go to the seaside, but the weather is not good enough. Next **week** will be better. **This** is a kind of great news.**This week** I'd like to go to the seaside, but the weather is not good enough. Next **week** will be better. **This** is a kind of great news.";
文字列の置換に配列を使用できるため、文字列の置換を試みましたが、すべての出現箇所が置換されます。位置を指定して substr_replace を使用しようとしましたが、思い通りに動作しません。
$pos = strpos($content,$keyword);
if($pos !== false){
substr_replace($content,$link,$pos,strlen($keyword));
}
および preg_replace で、ループ配列を使用:
preg_replace('/'.$keyword.'/i', $link, ($content),1);
それは一種の機能であり、キーワードをリンクで1回だけ置き換えますが、キーワードが複合(今週)の場合、これと週に置き換えられますが、これは間違っています...
助けていただければ幸いです...ありがとう。
アップデート
$link が問題です - 「http://」がなくても問題なく動作します...これは問題です。エスケープする方法は...