- preg_replace_callback: documentation ( source)
- mb_strlen: documentation ( source)
- implode: documentation ( source)
- preg_replace: documentation ( source)
<?php
$slug = '/job/hello-this-is-my-job-posting-for-a-daycare-im-looking-for-in-91770-rosemead-california-12345';
$slugLimit = 70;
echo preg_replace_callback(
'~^((?:[^-]*-)*)(in-\d{5}-[^-]*-[^-]*-\d*)$~u',
fn($m) => implode([
preg_replace(
'~^.{0,' . ($slugLimit - mb_strlen($m[2]) - 1) . '}-\K.*~u',
'',
$m[1]
),
$m[2]
]),
$slug
);