Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
andrepcg

Sortear uma string

Recommended Posts

andrepcg

peço ajuda para isto.

preciso de uma função em que dada uma string inicial (por exemplo "ola:adeus") ele gera uma nova string mas com base na inicial.

por exemplo que ele transforme "ola:adeus" em "0la:Ad3uS". ou em "oLA:ADEUS", ou em "o7-A:aDE*u5"

estão a perceber?

peço ajuda pq nao estou a ver a melhor maneira de fazer isto. pq eu nao quero que ele apenas transforme em L33T, ou que ponha maisculas. queria que ele fizesse quase tudo o que há para fazer. algumas letras em l33t, algumas letras maiusculas, adicionar random chars distribuidos aleatoriamente, e mais qq coisa que vocês se lembrem. mas nao quero que ele faça sempre todos de uma vez. por vezes faz só l33t, outras vezes l33t e random chars, outras vezes algumas letras maiusculas, etc...

conseguem ajudar?


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
andrepcg

ok, mas preciso de uma ajuda mais completa. ainda nao trabalho muito com php e passar algumas coisas de palavras para PHP é dificil.

se me conseguires indicar um ponto de partida, era excelente até pq nao sou ainda muito bom a trabalhar com arrays


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
helt

<?php
if(!empty($_POST['string'])){ // vês se o formulário foi correctamente submetido
/* podes fazer aqui um htmlentities para proteger a variável, mas isso pode
afectar a funcionalidade do script, portanto depois vês isso =P */
$string=strtolower($_POST['string']);

//fazes um array para cada letra
$char['a']=array('4','a');
$char['b']=array('b','|o');
//... até ao z

// isto vai fazer um novo array com os caracteres da string
$stringchars= preg_split('//', $string, -1);

$strfinal='';

foreach($stringchars as $stringchar){

/*
Por cada letra vai-se ao array $char buscar um equivalente
O round gera uma chave do array aleatóriamente
O count conta os elementos existentes no array $char, para dar 
um limite máximo ao rand
*/
$strfinal.= $char[$stringchar][rand(0,count($char[$stringchar])];
}
echo $strfinal;
}

else{
echo 'Entre com algum texto antes de submeter o formulário';
exit();
}

Espero ter ajudado!  :D


––––•(-• [ ђєlt ] •-)•––––

Share this post


Link to post
Share on other sites
andrepcg

excelente, agradeço imenso. uma coisa. passa-se qq coisa pq nao está a funcionar bem.

"Parse error: syntax error, unexpected ']' in C:\xampp\htdocs\md5_decrypt\char.php  on line 48"

<?php

$string=strtolower($_GET['str']);

//fazes um array para cada letra
$char['a']=array('4','a','A');
$char['b']=array('b','|o','B','8');
$char['c']=array('c','C','(');
$char['d']=array('d','D','|)');
$char['e']=array('e','E','3');
$char['f']=array('f','F','|-');
$char['g']=array('G','g');
$char['h']=array('h','H','|-|');
$char['i']=array('i','I','1','8');
$char['j']=array('J','j');
$char['k']=array('k','K','|/');
$char['l']=array('l','L','|_','1');
$char['m']=array('m','M','|\/|');
$char['n']=array('n','N','|\|');
$char['o']=array('o','O','0');
$char['p']=array('p','P','|º');
$char['q']=array('q','Q','0.');
$char['r']=array('r','R');
$char['s']=array('s','S','5');
$char['t']=array('T','t');
$char['u']=array('u','U','|_|');
$char['v']=array('v','V','\/');
$char['x']=array('x','X');
$char['w']=array('w','W','\A/');
$char['y']=array('y','Y');
$char['z']=array('Z','z','2');

//... até ao z

// isto vai fazer um novo array com os caracteres da string
$stringchars= preg_split('//', $string, -1);

$strfinal='';

foreach($stringchars as $stringchar){

/*
Por cada letra vai-se ao array $char buscar um equivalente
O round gera uma chave do array aleatóriamente
O count conta os elementos existentes no array $char, para dar
um limite máximo ao rand
*/
$strfinal.= $char[$stringchar][rand(0,count($char[$stringchar])];
}
echo $strfinal;

?>

na linha 48 está $strfinal.= $char[$stringchar][rand(0,count($char[$stringchar])];


Manda piadas secas por telefone - Piadas.secas.club

Share this post


Link to post
Share on other sites
helt

faltou fechar o rand(), substitui por isto:

$strfinal.= $char[$stringchar][rand(0,count($char[$stringchar]))];


––––•(-• [ ђєlt ] •-)•––––

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.