Olá pessoal da lista, tudo bem?Após meditar um pouco no problema do Daniel, criei este programa em PHP.
Precisava de um auxilio de vocês ma geração (ou otimização) de um script.
Tenho uma rede com samba como PDC em uma escola e agora na volta as aulas preciso gerar usuários e senhas para todos. Eu tenho um script que utilizo a tempos que pega uma lista com nome, username e senha e gera tudo pra mim. Mas eu preciso gerar esta lista.
O que eu queria era conseguir com a lista de nomes, gerar os usernames de forma que o username seja o primeiro e o ultimo nomes juntos (sem espaço) com letras minusculas e a senha seria de 6 digitos, todos numéricos. Caso o username fosse repetido, o sistema me avisaria (Andre Silva e Andre pereira rodrigues silva por exemplo seria repetido). Eu (ainda) não tenho experiencia com programação, apenas um pouco de bash.
Fico grato por qualquer ajuda
Abraço a todos
Daniel
Preparação:
O programa utiliza a versão de linha de comando do PHP, então é necessária a instalação do mesmo. Testei o programa apenas com o PHP5, mas teoricamente deve funcionar com o PHP4 sem problemas. No Debian, instale o pacote php5-cli (ou php4-cli).
aptitude install php5-cliBaixe o programa (disponível aqui , via GoogleDocs. Copie e cole em um arquivo de texto, com o nome de geraUsername.php), dê permissão de execução (chmod +x geraUsername.php) e execute o programa da seguinte maneira:
./geraUsername.php lista.txt > lista2.txtExemplo de uso:
Suponha uma lista de nomes como essa abaixo (os nomes são fictícios, quaisquer semelhanças com nomes reais são meras coincidências):
José da SilvaA saída do programa (o arquivo gerado em lista2.txt) seria essa:
José Saramago da Silva
Juca Pirama
Daniel de Andrade
Daniel Souza
Odorico Paraguaçú
Alcebíades Nogueira
alcebiadesnogueira,Alcebíades NogueiraO que o programa faz:
danielandrade,Daniel de Andrade
danielsouza,Daniel Souza
josesilva,José Saramago da Silva
josesilva,José da Silva
jucapirama,Juca Pirama
odoricoparaguacu,Odorico Paraguaçú
Lista de Usernames duplicados
josesilva => 2
- Faz a conversão de letras: Ç vira C, vogais acentuadas (com til, trema, crase, acentos agudos e/ou circunflexos) viram as mesmas vogais porém sem nenhum acento (ã vira a, ï vira i, ù vira u, etc)
- Converte todo o texto para minusculas;
- Insere o separador, caso haja algum configurado (veja mais abaixo)
Perceba que existem duas ocorrências do username josesilva. O programa alerta para isso na lista de usernames duplicados, no final da listagem. Cabe a você corrigir isso manualmente, o que é facilitado por causa da listagem ser ordenada pelos usernames, fazendo com que usernames iguais fiquem juntos.
O programa permite ainda uma personalização do modo como os usernames são criados: você pode definir um separador a ser inserido entre o nome e o sobrenome. Normalmente utiliza-se ponto (.), hífen (-) ou underscore (_) como elemento separador. Assim, o username josesilva ficaria jose.silva, jose-silva ou jose_silva, dependendo do separador utilizado. Não utilize vírgula como separador, pois vai "quebrar" a formatação do arquivo de saída, já que o mesmo utiliza vírgulas para separar o username do nome do usuário. Para realizar essa configuração, procure pelo texto $separadorUsername = ""; e substitua pelo valor desejado (por exemplo $separadorUsername = ".";).
Bom, é isso. Espero que seja útil para mais alguém. Caso você precise de uma ajudinha com um script, faça um comentário ou mande-me um email que terei prazer em ajudar na medida do possível.
Nenhum comentário:
Postar um comentário