からすべての属性と属性preg_replaceをクリアし、それらを他の値に置き換える必要がある関数を使用します。ここにあります:reltarget$body
    $patterns = array();
    $patterns[] = '/<a(.*) rel="([^"]*)"(.*)>/';
    $patterns[] = '/<a(.*) target="([^"]*)"(.*)>/';
    $patterns[] = '/<a(.*)>/';
    $replacements = array();
    $replacements[] = '<a$1$3>';
    $replacements[] = '<a$1$3>';
    $replacements[] = '<a rel="nofollow" target="_blank"$1>';
    $body = preg_replace($patterns,$replacements,$body);
問題は、単一引用符と引用符なしが一致しないことです。relまた、リンクから属性と属性をクリアして他の属性と設定するためのより良いアプローチがある場合はtarget、アドバイスしてください。
ありがとう
編集$body::
    $body = '<a href="TEST">Link1</a>
      <a href="TEST" rel=\'lqlqlq\'>Link2</a>
      <a href="TEST" target="_blank" rel="lqlqlq">Link3</a>
              <a href="TEST" target=_blank rel=lqlqlq>Link4</a>';
また、テキストによるリンクを機能させるための他のすべてのオプションはユーザー定義であり、おそらく一部のユーザーはごまかそうとしています。私の目標-ユーザーが何を入力したかに関係なく、すべてのリンク$bodyが定義されrel、属性を持つようになります。target