私はテキストフォームの投稿を解析する機能を持っています。投稿にリンクがあると、リンクをクリックする前に外部リンクについて警告するページにリダイレクトされます。PHP関数を書き直す手助けが必要
function url2link($txt) {
$setUrl = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="/link/$2$3" rel="nofollow">$2$4</a>', $txt);
return $setUrl;
}
この機能を変更するには、リンクにドメインのチェックを追加する必要があります。リンクは、私自身のドメインからのものであれば、ちょうどこのようにクリック可能なリンクに変換:
$setUrl = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="http://$2$3" rel="nofollow" target="_blank">$2$4</a>', $txt);
が、それは外部のドメインへのリンクの場合 - 警告ページ(トップ一例)へのリンクポイントを作ります。
私はこのチェックを追加する方法がわからないため、ここではうまくいきません。ポストには複数のリンクがあり、一部にはローカル、いくつかの外部リンク、いくつかのミックスがあります。
- このテキストは、複数のURLに遭遇する可能性のあるインラインテキスト(テキストエリアなど)の大きなブロックから取得されていますか?または、カンマで区切られたURLなどの専用フォームフィールドがありますか? – DeaconDesperado
これはdbから来ています。 – santa