/
(私はあなたが使用していると思います)の最後のインスタンスと一致[^/]+$
させ、ダッシュに到達するまで次の4つ以下の数字の内容をコピーしたいと思います-
。
この数値を返す「正しい」方法はpreg_splitを使用することだと思いますが、よくわかりません。私が知っている他の唯一の方法は、で爆発し/
、配列を逆にし、で爆発し-
、割り当てることです。もっとエレガントな方法があると思いますか?
例えば
example.com/12-something // get 12
example.com/996-something // get 996
example.com/12345-no-deal // return nothing
残念ながら、私はあなた方の何人かのような正規表現の第一人者ではありません。
これは同じことをするための醜い方法です。
$strip = array_reverse(explode('/', $page));
$strip = $strip[0];
$strip = explode('-', $strip);
$strip = $strip[0];
echo (strlen($strip) < 4) ? (int)$strip : null;