08/01/24 22:32:48
こんな感じに外部サイトを判定して、外部ならアイコン出すようなのをやってみたんですが
これを make_link.php の ToString 末尾あたりに突っ込んでとりあえず想定する動作はしたんですが何かおかしなとこはないでしょうか。
// サイト内URLかどうかを判定
function IsInternal($url){
global $_SERVER;
global $script;
$urls = parse_url($url);
$myurls = parse_url($script);
if( isset($urls[host]) && (
$urls[host] != $_SERVER[HTTP_HOST] &&
$urls[host] != SERVER_NAME &&
$urls[host] != $myurls[host]
) ){
return FALSE; //外部ホスト
}
$mypath = preg_replace('#/[^\/]+$#', '/', $myurls[path]); // 末尾のファイル名を除去
if( substr($urls[path],0,strlen($mypath)) != $mypath ){
return FALSE; // 外部パス
}
return TRUE;
}
function ExternalIcon($url){
global $_IMAGE;
$_IMAGE['skin']['external_link'] = 'external_link.gif';
if( IsInternal($url) ){
return '';
}
return '<IMG SRC="'.IMAGE_DIR .$_IMAGE['skin']['external_link'].'" WIDTH=11 HEIGHT=11 ALT="外部URL">';
}