私のウェブサイトでは、ユーザーはプロフィールに URL を入れることができます。
この URL はhttp://www.google.com
またはwww.google.com
またはgoogle.com
です。
PHPコードに挿入しただけで<a href="$url">$url</a>
は、リンクは常に絶対的ではありません。
a
タグを絶対に強制するにはどうすればよいですか?
私のウェブサイトでは、ユーザーはプロフィールに URL を入れることができます。
この URL はhttp://www.google.com
またはwww.google.com
またはgoogle.com
です。
PHPコードに挿入しただけで<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」が含まれていない場合は、文字列 (プレフィックス) の前に追加します。
または、正規表現でこれを行うことができます
$http_pattern = "/^http[s]*:\/\/[\w]+/i";
if (!preg_match($http_pattern, $url, $match)){
$url = 'http://' .$url;
}
間違いを指摘してくれた@JamesHiltonに感謝します。ありがとうございました!