|
str_shuffle
Randomly shuffles a string
(PHP 4 >= 4.3.0, PHP 5)
Example 2448. str_shuffle() example<?php Code Examples / Notes » str_shufflesfalcon_
You can use str_shuffle to make simple and nice random passwords: function random_passwd($numchar) { $string =str_shuffle("abcefghijklmnopqrstuvwxyz1234567890"); $password = substr($string,1,$numchar); return($password); } echo random_passwd('8') // Will return something like "xa3dh214" =) dzafel
Very, very simple random password generator, without using rand() function: <?php function random_password($chars = 8) { $letters = 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; return substr(str_shuffle($letters), 0, $chars); } ?> cygnusx1
To cobine functionality and simplicity of the two functions below we can have: <?php function generatePasswd($numAlpha=6,$numNonAlpha=2) { $listAlpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $listNonAlpha = ',;:!?.$/*-+&@_+;./*&?$-!,'; return str_shuffle( substr(str_shuffle($listAlpha),0,$numAlpha) . substr(str_shuffle($listNonAlpha),0,$numNonAlpha) ); } ?> aidan
This functionality is now implemented in the PEAR package PHP_Compat. More information about using this function without upgrading your version of PHP can be found on the below link: http://pear.php.net/package/PHP_Compat michiel van den boogaard
Shortend function for PHP < 4.3 <?php function RandomPass($numchar) { $word = "a,b,c,d,e,f,g,h,i,j,k,l,m,1,2,3,4,5,6,7,8,9,0"; $array=explode(",",$word); shuffle($array); $newstring = implode($array,""); return substr($newstring, 0, $numchar); } ?> nmoyroud
Just another update to password builder function. With this version, you can choose the number of alphanumeric characters to add and the number of non-alphanumeric characters. You obtain a more secure password. You can add another characters to the non-alphanumeric list if you need. If you want a password with 8 alphanumeric and 3 non-alphanumeric characters in a random order, just call : random_passwd(8,3); function generatePasswd($numAlpha=6,$numNonAlpha=2) { $pwd = ''; $listAlpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $listNonAlpha = ',;:!?.$/*-+&@_+;./*&?$-!,'; $start = mt_rand(1, (strlen($listAlpha)-$numAlpha)); $string = str_shuffle($listAlpha); $pwd .= substr($string,$start,$numAlpha); $start = mt_rand(1, (strlen($listNonAlpha)-$numNonAlpha)); $string = str_shuffle($listNonAlpha); $pwd .= substr($string,$start,$numNonAlpha); return str_shuffle($pwd); } support
Just an update to sfalcon's function. Chooses a random number within the length and then selects a random segment not the current segment of 1 to $numchar. Also added upper-case chars. function random_passwd($numchar=8) { $str = "abcefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $start = mt_rand(1, (strlen($str)-$numchar)); $string = str_shuffle($str); $password = substr($string,$start,$numchar); return($password); } rudigreen
Here are 2 functions, one inverts the case of a string and the other one randomizes the captilization in a string, kinda useful string operations. <? //Inverts the case of a string function invert_case($str) { $nstr = ''; for($i=0;$i<strlen($str);$i++) { $char = substr($str,$i,1); //If it's lower case make it upper case if($char == strtolower($char)) { $char = strtoupper($char); } else //if it's upper than make it lower { $char = strtolower($char); } $nstr .= $char; } return $nstr; } //Randomly capilizes/uncaptilizes chars in a string function rand_case($str) { $nstr = ''; for($i=0;$i<strlen($str);$i++) { $char = substr($str,$i,1); $char = invert_case($char); //2 options, to change or not to change rand(0,1) == 1 ? $char = invert_case($char) : null; $nstr .= $char; } return $nstr; } //Example: echo rand_case("pHp rooLz! gUyZ"); //produces something random echo invert_case("pHP STRiNG sEx");//produces Php strIng SeX ?> jojersztajner
Aoccdrnig to rseearch at an Elingsh uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is that the frist and lsat ltteer is at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed ervey lteter by it slef but the wrod as a wlohe. Hree's a cdoe taht slerbmcas txet in tihs way: <?php function scramble_word($word) { if (strlen($word) < 2) return $word; else return $word{0} . str_shuffle(substr($word, 1, -1)) . $word{strlen($word) - 1}; } echo preg_replace('/(\w+)/e', 'scramble_word("\1")', 'A quick brown fox jumped over the lazy dog.'); ?> It may be ufseul if you wnat to cetare an aessblicce CTCPAHA. qube, efnet #php
(correction) I balked at the loop method used below in inverting and randomising capitalisation and released that we just need to flip the bit (3rd bit or 6th depending on what way you look at it) and it would cause the case change in a character. Full code and example: http://www.pgregg.com/projects/php/code/str_case.php (append an s to the url to get the .phps source) I came up with a method and thanks to arpad (optimising as ever! :) we now have: Invert case: preg_replace('/[a-z]/ie', '\'$0\' ^ str_pad(\'\', strlen(\'$0\'), \' \')', $input); Randomise case: preg_replace('/[a-z]/ie', '(rand(0,1) ? \'$0\' ^ str_pad(\'\', strlen(\'$0\'), \' \') : \'$0\')', $input); and for good measure: Upper case: preg_replace('/[a-z]/e', '\'$0\' & str_pad(\'\', strlen(\'$0\'), chr(223))', $input); Lower case: preg_replace('/[A-Z]/e', '\'$0\' | str_pad(\'\', strlen(\'$0\'), \' \')', $input); |
Change Languageaddcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string convert_uudecode convert_uuencode count_chars crc32 crypt echo explode fprintf get_html_translation_table hebrev hebrevc html_entity_decode htmlentities htmlspecialchars_decode htmlspecialchars implode join levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br number_format ord parse_str printf quoted_printable_decode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr substr_compare substr_count substr_replace substr trim ucfirst ucwords vfprintf vprintf vsprintf wordwrap |