1

これは Outlook の設定を使用して実行できることは知っていますが、それは自分の問題を分類するだけです。

私がやりたいのは、PHPを使用して、@記号などがあるという理由だけでテキストがハイパーリンクされないようにすることです...

私が見る限り、私にとって唯一のオプションは、すべての @ 記号を次のように HTML 数値エンティティにエンコードすることです。

このようなもの:

$message = str_replace('@','@',$message);

ただし、可能であれば、@ 記号が電子メール アドレスの一部である場合は、これが発生したくありません。

したがって、次のようなものが必要です。

// SOME_REGEX will match any @ sign that is NOT part of an email address
$message = preg_replace('SOME_REGEX','@',$message);

他のより良い方法を考えられる人はいますか? この計画に欠陥はありますか?誰かがこれに適した正規表現を提案できますか? メールアドレスの一部でない場合、@ 記号に一致する正規表現を書くのに苦労しています

前もって感謝します

4

2 に答える 2

1

電子メール アドレスがトリム リストで定義されていないもので囲まれている場合、これは機能しません。

$chunked_message = explode(" ", $message);

foreach($chunked_message as $chunk) {
    $clean_chunked_message[] = 
               (!filter_var(trim($chunk, " -().?!\t\r\n", FILTER_VALIDATE_EMAIL)) 
               ? str_replace('@', '@' $chunk) : $chunk;
}

$clean_message = implode(" ", $clean_chunked_message);

幸運を。

于 2012-04-20T09:51:23.407 に答える
0

これは、リンクが見つかったときにそれを検出し、クリックできるようにするメール アプリケーションの機能です。

この状況を回避するための裏技は、リンク間にスペースを使用することです。

例:

http://ww w.you tube.com/v=.......
于 2012-04-20T09:39:29.987 に答える