PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでURLに「http://」が存在しない場合に自動的に追加する方法

文字列に「https://」が含まれていない場合に、先頭へ自動的に追加する関数を紹介します。例えば、次のような値が渡されたとします。

example.com

期待する出力は「https://」が付いた実際のリンク形式、つまり次のような文字列です。

https://example.com

この処理を実現するには、ドット(.)演算子で文字列を連結し、preg_match()関数で条件判定を行う方法が便利です。

実装例

<!DOCTYPE html>
<body>
<?php
function addingTheHTTPValue($stringValue) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $stringValue)) {
        $stringValue = "https://" . $stringValue;
    }
    return $stringValue;
}
echo addingTheHTTPValue("example.com");
echo "<br>";
echo addingTheHTTPValue("https://example.com");
?>
</body>
</html>

出力結果

https://example.com
https://example.com

コードの解説

preg_match()に渡している正規表現パターン「~^(?:f|ht)tps?://~i」は、文字列の先頭が「ftp://」「https://」「https://」のいずれかで始まっているかどうかを判定します。パターン末尾の「i」は大文字・小文字を区別しない設定です。

パターンにマッチしなかった場合、つまりスキームが存在しない場合のみ、「https://」を文字列の先頭に連結して返します。すでにスキームが付いているURLはそのまま返されるため、二重に追加される心配はありません。

この方法を使えば、ユーザーが入力したURLにスキームが抜けているケースでも、正しいリンク形式へ簡単に変換できます。フォーム入力のバリデーションやデータベース保存前の整形など、さまざまな場面で活用できる実用的なテクニックです。

  1. Windows 8にAuroraスクリーンセーバーを追加・復活させる方法

    Windows 8の登場により、多くのユーザーはおなじみのスタートメニューとの別れを余儀なくされました。しかし、それだけではありません。Windowsの歴史とともに歩んできた人気のスクリーンセーバー「Aurora(オーロラ)」も、最新のWindows OSからは姿を消してしまったのです。幸い、標準搭載されていなくても、ダウンロードしてインストールし、設定をカスタマイズすれば、Windows 8でもAuroraスクリーンセーバーを再び楽しむことができます。この記事では、その具体的な手順をわかりやすく解説します。Windows 8でAuroraスクリーンセーバーを復活させる方法まずは、Aurora

  2. PHPのimagecreatefrompng()関数でPNGファイルやURLから新しい画像を作成する方法

    PHPのimagecreatefrompng()は、標準で用意されている組み込み関数のひとつで、PNGファイルまたはURLから新しい画像を作成します。指定されたファイル名から取得した画像を表す「画像リソース識別子」を返します。なお、この関数を利用するには、PHP環境にGDライブラリが組み込まれている必要があります。構文resource imagecreatefrompng(string $filename)パラメータimagecreatefrompng()が受け取るパラメータは$filenameのひとつだけです。この引数には、読み込みたいPNG画像のファイル名、または画像へのパス(URL)を指