вставить сепаратор в строку по маске

буду признателен за другой возможный вариант этого кода:

<?php
$ISDevID = 'D824BDBA69D7';
$ISPoolID = sprintf("%s.%s.%s",
    substr($ISDevID, 0, 4),
    substr($ISDevID, 5, 4),
    substr($ISDevID, 8, 4),
);
echo $ISPoolID;

$ISDevID достается из массива через foreach, заносится в другой массив, из которого уже в виде D824.BDBA.69D7 вытаскивается на сайт


Ответы (3 шт):

Автор решения: John Dow

Как правильно подсказали выше:

$ISDevID = 'D824BDBA69D7';
$ISPoolID = substr(chunk_split($ISDevID, 4,'.'), 0, -1);

Если не использовать substr ...... ,0,-1 появляется точка (в моем случае) в конце форматируемой строки

→ Ссылка
Автор решения: Daniil Loban

Как один из вариантов разбить регуляркой на 3 группы по 4 символа.

$string = 'D824BDBA69D7';
$pattern = '/^(.{4})(.{4})(.{4})/i';
$replacement = '$1.$2.$3';
echo preg_replace($pattern, $replacement, $string); //D824.BDBA.69D7
→ Ссылка
Автор решения: u_mulder

Еще вариант:

$ISDevID = 'D824BDBA69D7';
echo implode('.', str_split($ISDevID, 4));
→ Ссылка