私はここで広く検索しましたが、私の特定のニーズに合ったものは見つかりませんでした。PHPでRegexを使用するURLとEMailsをHTMLリンクに変換します
PHPでregexを使ってテキストブロックを解析し、2つのことを行う必要があります。
- HTMLにURLを変換し
- リンク
mailto:
HTMLにメールを変換し、私は彼らがseperatly働いてきたが、問題は、URLの変圧器は、電子メールアドレスをドメインをオフにリンクしようとしている
をリンクします。そして私が最初に逆に進むと、EMailリンクのhref属性が再リンクされ、壊れたHTMLが生成されます。ここで
は、私が働いているものです:
public function getParsedBodyAttribute()
{
$string = $this->body;
$string = preg_replace('/(\[email protected]\S+\.\S+)/', '<a href="mailto:$1">$1</a>', $string);
return preg_replace('(?!(?!.*?<a)[^<]*<\/a>)(?:(?:https?|ftp|file)://|www\.|ftp\.)[-A-Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$]', '<a href="http$2://$4" target="_blank" title="$0">$0</a>', $string);
}
は、使用しているものの例を提供します参照してください。 – chris85
リンクするにはhttp://www.google.com https://google.com google.com [email protected]が必要です。うまくいけば、これはあなたが例を意味するものです。 – cPfeifer
だから私は理想的には最初にそれはすべての電子メールをリンクし、スルーして、すでにブロックにないURLを探していたと思います。 – cPfeifer