私のWebサイトでは、ユーザーは自分のプロファイルにURLを入れることができます。
このURLはhttp://www.google.com
またはwww.google.com
またはgoogle.com
。
PHP code <a href="$url">$url</a>
、リンクは常に絶対的ではありません。
a
タグを絶対的にするにはどうすればよいですか?
URLの前に//
を付けると、絶対URLとして扱われます。例えば:
<a href="//google.com">Google</a>
。
これは、ページが提供されているのと同じプロトコルを使用することに注意してください(たとえば、ページのURLがhttps://path/to/page
の場合、結果のURLはhttps://google.com
になります)。
私は最近同様のことをしなければなりませんでした。
if (strpos($url, 'http') === false) {
$url = 'http://' .$url;
}
基本的に、URLに「http」が含まれていない場合は、文字列(プレフィックス)の前に追加します。
または、RegExでこれを行うことができます
$http_pattern = "/^http[s]*:\/\/[\w]+/i";
if (!preg_match($http_pattern, $url, $match)){
$url = 'http://' .$url;
}
間違いを指摘してくれた@JamesHiltonに感謝します。ありがとうございました!
プロトコルを使用します。できればhttp://
<a href="http://www.google.com">Google</a>
この形式でURLを入力するか、追加されていない場合はhttp://を連結するようユーザーに依頼します。