編集:例正規表現/ str_replace:mailtoの持つ問題とスマイリー組み合わせ
ユーザーが[email protected]に入ると、目に見える結果は次のようになります。
[email protected]" class="small">[email protected]
しかし、ユーザーが電子メールを入力した場合@ example.noの場合、目に見える結果は[email protected]となり、リンクになります。ユーザーがリンクをクリックすると、それは自分のコンピュータ上で自分のローカルの電子メールプログラムを要求し、受信者フィールドには、自動充填[email protected]
で問題私がいるで
私は、ユーザーが互いのページにコメントすることができ、サイト上で働いている、と私はクリック可能なURLにURLを置き換えるためにstr_replaceや正規表現を使用しています、「クリッカブルハッシュタグ」、スマイリーコード(にハッシュタグ:P:S、:D )などの画像が
、に私はにpreg_replaceでのmailtoに電子メールを有効にしようと、(私の「舌」-smiley:P )それを破る:ユーザーは、「P」の文字でのmailtoブレークを開始し、電子メールに入り、私は基本的にねじ込んだ
// MAILTO
$text = preg_replace('/(\[email protected]\S+\.\S+)/', '<a href="mailto:$1" class="small">$1</a>', $text);
// SMILEY
$text = str_replace(':P', '<img src="images/smileys/tongue.png" class="smiley" alt=":P" />', $text);
場合。
文字列入力:
<a href='mailto:[email protected]'>[email protected]om</a>
は、次のようになります(:P)
<a href='mailto[SMILEY][email protected]'>[email protected]</a>
1つの明白な解決策は、スマイリーコードを変更することはもちろんである何か他のものの中に、あるいは単に作成しませんクリック可能な電子メール。しかし、 ":P"はユーザーに広く知られ、使用されているため、ユーザーエクスペリエンスの問題です。また、私は ":S"などのような他のスマイリーを持っているので、これに簡単で実用的な解決策を見つけることを望んでいます。
ご協力いただければ幸いです。
例、入力と期待される出力を使用して記事を更新してください。 p'とあなたが 'エンディングたい:p'は'の代わりに交換する必要があります:p'はhref属性に来 –
はありがとう、私は例今 – kimnthorstensen
は、あなたがこの '[email protected]を持っていると言うことができますが追加されました。そうですか? –