Скажем, у меня есть следующие:Укладка переменной?
$var = "1234567890";
Я хочу, чтобы выглядеть следующим образом:
1234 567 890
С первых четырех чисел, пробел, затем три числа, пространство, затем три числа.
Как это сделать?
Спасибо :)
Скажем, у меня есть следующие:Укладка переменной?
$var = "1234567890";
Я хочу, чтобы выглядеть следующим образом:
1234 567 890
С первых четырех чисел, пробел, затем три числа, пространство, затем три числа.
Как это сделать?
Спасибо :)
Вы можете использовать substr:
echo substr($var, 0, 4) . ' ' . substr($var, 4, 3) . ' ' . substr($var, 7, 3);
Перед тем как сделать это, однако, вероятно, вы должны проверить, чтобы убедиться, что строка длины вы ожидаете, что это и имеет только числовые символы в нем, как так:
if (strlen($var) == 10 && is_numeric($var))
{
// $var passed the check
}
else
{
// $var failed the check
}
Если предположить, что ваши данные является допустимым 10-значный номер:
echo substr($var, 0, 4) . ' ' . substr($var, 4, 3) . ' ' . substr($var, 7);
Если вы не слишком частности, вы можете сделать:
$var = substr($var,0,4)." ".substr($var,4,3)." ".substr($var,7);
Это нарушит его, как вы описали, и в качестве «бонуса» она будет возвращать неограниченное количество дополнительных символов на конец, если ввод больше ожидаемого. В качестве альтернативы вы можете сделать
$var = substr($var,0,4)." ".substr($var,4,3)." ".substr($var,7,3);
, чтобы усечь цифры 10-го числа.
Вы также можете использовать регулярное выражение:
$var = preg_replace("@(\d{4})(\d{3})(\d{3})@", "\\1 \\2 \\3", $var);
Или, если быть более точным:
$var = preg_replace("@^(\d{4})(\d{3})(\d{3})[email protected]", "\\1 \\2 \\3", $var);
, как вы уверены в вашем входе? Если вы знаете, что это будет 10 цифр в 100% случаев, тогда вы можете использовать substr – zzzzBov