PHPでURLの最後の部分を取得する方法
URLの最後の部分(末尾のセグメント)を取得するには、PHPのpreg_match()関数を使用します。正規表現を組み合わせることで、URL末尾の数字や文字列を簡単かつ確実に抽出できます。
入力例
以下のようなURLが入力だとします。
$websiteAddress = 'https://www.tutorialspoint.com/java/java_questions_answers/9989809898';
期待される出力
このURLから、最後の部分にあたる数字「9989809898」だけを取り出します。
9989809898
サンプルコード
以下は、preg_match()を使ってURLの最後の部分を取得するPHPコードです。
<!DOCTYPE html>
<html>
<body>
<?php
$websiteAddress = 'https://www.tutorialspoint.com/java/java_questions_answers/9989809898';
if (preg_match("/\/(\d+)$/", $websiteAddress, $recordMatch)) {
$lastResult = $recordMatch[1];
}
echo "取得結果:", $lastResult;
?>
</body>
</html>
実行結果
このコードを実行すると、次のように出力されます。
取得結果:9989809898
正規表現パターンの解説
使用しているパターン「/\/(\d+)$/」は、それぞれ次の意味を持っています。
- \/ … スラッシュ(/)という文字そのものに一致
- (\d+) … 1桁以上の連続する数字に一致し、キャプチャグループとして記録
- $ … 文字列の末尾を表すアンカー
マッチに成功すると、キャプチャされた末尾の数字が $recordMatch[1] に格納され、それを出力しています。
補足:別の取得方法
正規表現を使わずに、basename() 関数や explode() 関数でも同様の結果が得られます。たとえば basename($websiteAddress) を呼び出すだけで、パスの最後の要素を取得できます。状況に応じて、シンプルさと柔軟性のバランスを考慮して使い分けるとよいでしょう。
-
PHPの配列からランダムな値を取得する方法|array_rand()関数の使い方
PHPで配列からランダムな値を取得するには、array_rand()関数を使います。この関数は配列からランダムなキーを返すため、そのキーを指定して対応する値にアクセスするのが基本の流れです。 array_rand()関数とは array_rand()は、配列から1つ以上のランダムなキーを取り出すPHPの組み込み関数です。構文は以下の通りです。 array_rand( array $array, int $num = 1 ) : int|string|array 第1引数: 対象となる配列を指定します。 第2引数: 取得するキーの個数を指定します(省略可、デフォルトは1)。2以上を指定した場合
-
PHPのFILTER_VALIDATE_URL定数とは?URL検証の使い方を解説
FILTER_VALIDATE_URL定数は、値が有効なURLとして妥当かどうかを検証するために使用します。通常はfilter_var()関数と組み合わせて呼び出し、入力されたURLの形式チェックを行います。使用できるフラグFILTER_FLAG_SCHEME_REQUIRED − URLがRFCに準拠しており、スキーム(http、httpsなど)を含む必要があります。FILTER_FLAG_HOST_REQUIRED − URLにホスト名が含まれている必要があります。FILTER_FLAG_PATH_REQUIRED − ドメイン名の後にパス(例:/path/page.php)が含まれている