PDA

Visualizza la versione completa : Cambiare numeri in lettere


pirpy
16-09-2010, 12:33
da una pagina ottenuta con file_get_contents vorrei sostituire tutte le occorrenze di 6 numeri consecutivi con delle lettere prescelte, ovvero se nella pagina trovo 034201, e avendo scelto
che a=0 b=3 c=4 d=2 e=1, quello che voglio ottenere è: abcdae.

Come posso fare?

k.b
16-09-2010, 12:37
$letters = 'abcde';
$numbers = '03421';

$string = '034201';

echo strtr($string, $numbers, $letters);

pirpy
16-09-2010, 12:48
forse mi sono spiegato male: allora nella pagina che ho non c'è solo 1 occorrenza di 6 numeri, ma varie, sparse nella pagina. quindi vorrei che ogni volta che si incontrano 6 numeri questi vengano sostituiti dalle relative lettere:

ad esempio se ho scelto: a=0, b=1, c=2, d=3, e=4, f=5, g=6, h=7, i=8, l=9

vorrei che AUTOMATICAMENTE se nella pagina ottenuta con file_get_contents se trovo 344321 questo mi venga sostituito con deedcb e se sempre nella stessa pagina c'è 566265 questo venga sostituito con fggcgf

Forse ora è più chiaro.... resto in attesa di aiuto, grazie

k.b
16-09-2010, 12:57
$text = 'EMFQEOMFQ 034210 QMEIMFOQIEFNEQI 130341 NOQIEFNEQIFN';

preg_match_all('/\D\d{6}\D/', $text, $match);

$from = $match[0];
$to = array_map('transform', $from);

echo str_replace($from, $to, $text);

function transform($s) {
$letters = 'abcde';
$numbers = '03421';
return strtr($s, $numbers, $letters);
}

Loading