3v4l.org

run code in 300+ PHP versions simultaneously
<?php function format($src, $format = '+d (ddd) ddd-dd-dd') { $digits = preg_replace('/\D/', '', $src); // Оставляем только цифры $res = ''; for($i = 0; $i < strlen($format); $i++) { $letter = $format[$i]; if (!$digits) { // Не хватило цифр $res .= $letter; continue; } switch ($letter) { case 'd': // Цифра $res .= $digits[0]; $digits = substr($digits, 1); break; default: $res .= $letter; } } return $res; } $data = [ '+7(999)999-99-99', '79998887766', '799988877', // недостаточно цифр для формата ]; foreach ($data as $phoneSrc) { echo format($phoneSrc)."\n"; }
Output for git.master, git.master_jit, rfc.property-hooks
+7 (999) 999-99-99 +7 (999) 888-77-66 +7 (999) 888-77-dd

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
49.65 ms | 401 KiB | 8 Q