- preg_match_all: documentation ( source)
- str_replace: documentation ( source)
- preg_replace: documentation ( source)
- str_pad: documentation ( source)
<?php
$argv[1]=$i='4N4P9N7P1N1P2N2P';
preg_match_all('/(\d+)(\w)/',$argv[1],$m,2);
//$o='';foreach($m as $p)$o.=str_repeat($p[2]=='N'?'=':'-',$p[1]);
$o='';foreach($m as list(,$n,$c))$o.=str_pad('',$n,$c=='N'?'=':'-');
$a=preg_replace('/./','_',$o=str_replace('--','- ',$o));
echo("$a\n\n\n$o\n\n$a\n");