マニアックなタイトルなので需要は少ないだろうが、業務でEC-CUBEを使っているのでメモとしてまとめておく。

EC-CUBE3の商品ページのURLは以下のようなフォーマットとなっている。

htttps://example.com/products/detail/${商品ID}

ここに商品規格などが入る場合は、以下のようになる。

htttps://example.com/products/detail/${商品ID}?class1=x&class2=y

今回のテーマは、上記のようなURLから商品IDを抜き出す方法だ。

PHPのpreg_match関数を使う。

$uri = $_SERVER["REQUEST_URI"];
preg_match('/detail\/(\d*)/', $uri, $matches);
$id = $matches[1];

抽出条件は「detail/」の後に続く「整数の連続」

正規表現を使えば、文字列の複雑な切り出しも僅かなコードで行えるので非常に便利だ。