マニアックなタイトルなので需要は少ないだろうが、業務で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/」の後に続く「整数の連続」
正規表現を使えば、文字列の複雑な切り出しも僅かなコードで行えるので非常に便利だ。