Criptare parti di un testo
Salve, avrei bisogno di una mano con questo procedimento.
Parto da un testo che prendo dal db e devo stamparlo a video. Nel testo alcune parti devono essere criptate e le altre rimanere normali.
per la criptazione ho scritto questa funzione (che mi permette di criptare mantenendo il numero dei caratteri e gli spazi tra le parole)
e fin qui tutto bene... ora la domanda è: come sostituisco solo determinate parole all'interno di una frase?
Ho provato ad usare preg_replace in vari modi e senza molti risultati (anche perché non sono pratica)
quindi dato un testo del tipo: <§I testo da criptare> testo da non criptare.
dovrebbe stamparmi questo: <kijth js rntdkrb> testo da non criptare.
ma ovviamente non funziona XD mi stampa solo due caratteri a caso evidentemente non riuscendo a leggere quel $1 all'interno del replace, come si può fare...?
Salve, avrei bisogno di una mano con questo procedimento.
Parto da un testo che prendo dal db e devo stamparlo a video. Nel testo alcune parti devono essere criptate e le altre rimanere normali.
per la criptazione ho scritto questa funzione (che mi permette di criptare mantenendo il numero dei caratteri e gli spazi tra le parole)
Codice:
<?php function LettereCasuali($lunghezza){
$caratteri ="abcdefghijklmnopqrstuvwxyz";
$code = "";
for($i = 0; $i<$lunghezza; $i++){
$code = $code.substr($caratteri,rand(0,strlen($caratteri)-1),1);
}
return $code;
}
function CodificaLingua($testo){
$parole = explode(' ',$testo);
$codificato = '';
foreach($parole as $parola) {
$quante = strlen($parola);
$codificato.=LettereCasuali($quante).' ';
}
return trim($codificato);
}
e fin qui tutto bene... ora la domanda è: come sostituisco solo determinate parole all'interno di una frase?
Ho provato ad usare preg_replace in vari modi e senza molti risultati (anche perché non sono pratica)
Codice:
function traduci($str)
{
$search = array(
'#\<§I(.+?)\>#is'
);
$replace = array(
'<'.CodificaLingua(\'$1\').'>' //QUI VORREI LA FRASE CRIPTATA
);
return preg_replace($search, $replace, $str);
}
quindi dato un testo del tipo: <§I testo da criptare> testo da non criptare.
dovrebbe stamparmi questo: <kijth js rntdkrb> testo da non criptare.
ma ovviamente non funziona XD mi stampa solo due caratteri a caso evidentemente non riuscendo a leggere quel $1 all'interno del replace, come si può fare...?
Ultima modifica: