【PHP】外部URLが含まれている文章を検出する


コメント欄などを記載する時に、そのサイトのドメイン以下のURLは許可し、外部のURLを弾く判定です。

全てのURLを弾く際には、以下の判定で弾けます。


if (preg_match('/(https?|http):\/\//', $targetString)) {

}

自分サイトのドメインのみ許可する場合は、preg_matchでURLを検出する前に自分サイトのドメインを除いてあげましょう。


$text = "このサイトがおすすめです。\https://example.com/";

$targetString = str_replace('https://blog.web-develop.tech/', '', $text);
		
if (preg_match('/(https?|http):\/\//', $targetString)) {
     // エラー 外部サイトのURLを記載することはできません
    
}