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にスキームが抜けているケースでも、正しいリンク形式へ簡単に変換できます。フォーム入力のバリデーションやデータベース保存前の整形など、さまざまな場面で活用できる実用的なテクニックです。
-
Windows 8にAuroraスクリーンセーバーを追加・復活させる方法
Windows 8の登場により、多くのユーザーはおなじみのスタートメニューとの別れを余儀なくされました。しかし、それだけではありません。Windowsの歴史とともに歩んできた人気のスクリーンセーバー「Aurora(オーロラ)」も、最新のWindows OSからは姿を消してしまったのです。幸い、標準搭載されていなくても、ダウンロードしてインストールし、設定をカスタマイズすれば、Windows 8でもAuroraスクリーンセーバーを再び楽しむことができます。この記事では、その具体的な手順をわかりやすく解説します。Windows 8でAuroraスクリーンセーバーを復活させる方法まずは、Aurora
-
PHPのimagecreatefrompng()関数でPNGファイルやURLから新しい画像を作成する方法
PHPのimagecreatefrompng()は、標準で用意されている組み込み関数のひとつで、PNGファイルまたはURLから新しい画像を作成します。指定されたファイル名から取得した画像を表す「画像リソース識別子」を返します。なお、この関数を利用するには、PHP環境にGDライブラリが組み込まれている必要があります。構文resource imagecreatefrompng(string $filename)パラメータimagecreatefrompng()が受け取るパラメータは$filenameのひとつだけです。この引数には、読み込みたいPNG画像のファイル名、または画像へのパス(URL)を指