04/10/2018, 17:43

Tạo chuỗi ngẫu nhiên ( Random String ) trong PHP

Đến một thời điểm nào đó chắc hẳn bạn sẽ cần tạo một chuỗi ngẫu nhiên (random string) để xác nhận tài khoản hoặc 1 cái gì đó mà bạn cần tới, hôm nay mình sẽ giúp các bạn 1 đoạn code rất đơn giản để làm công việc này. Nào chúng ta cùng bắt đầu nào.. Đầu tiên Chúng ta sẽ đặt tên hàm này là ...

Đến một thời điểm nào đó chắc hẳn bạn sẽ cần tạo một chuỗi ngẫu nhiên (random string) để xác nhận tài khoản hoặc 1 cái gì đó mà bạn cần tới, hôm nay mình sẽ giúp các bạn 1 đoạn code rất đơn giản để làm công việc này. Nào chúng ta cùng bắt đầu nào..

tao chuoi ngau nhien trong php

Đầu tiên Chúng ta sẽ đặt tên hàm này là rand_string, hàm này sẽ yêu cầu 1 tham số $length ( chiều dài của chuỗi )

function rand_string( $length ) {
}

Kế tiếp chúng ta sẽ tạo ra 1 chuỗi bao gồm tất cả các kí tự mà bạn muốn dùng làm hàm ngẫu nhiên

$chars = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”;

Sau đó chúng ta sẽ tạo ra 1 vòng lặp, vòng lặp này được dùng để tạo ra các kí tự ngẫu nhiên trong chuỗi chúng ta vừa tạo trước đây, bạn xem đoạn code sau sẽ hiểu rõ hơn ý mình muốn nói

1
2
3
4
5
6
<?php
$size = strlen( $chars );
for( $i = 0; $i < $length; $i++ ) {
  $str .= $chars[ rand( 0, $size - 1 ) ];
}
?>

Việc cuối cùng là chúng ta dùng hàm substr dùng để cắt ra số lượng kí tự mà chúng ta muốn lấy ra

$str = substr( str_shuffle( $chars ), 0, $length );

vậy là đã hoàn tất , bây giờ chúng ta chỉ cần ráp tất cả các đoạn code trên là xong.

1
2
3
4
5
6
7
8
9
10
<?php
function rand_string( $length ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen( $chars );
for( $i = 0; $i < $length; $i++ ) {
$str .= $chars[ rand( 0, $size - 1 ) ];
 }
return $str;
}
?>

Cách sử dung:

Rất đơn giản khi nào bạn cần sử dụng thì bạn chỉ cần gọi hàm ra như sau:

$my_string = rand_string( 5 );

Chúc các bạn thành công !

Tags: hoc php php code php string ramdom string tao chuoi ngau nhien thu thuat php

Chuyên Mục: PHP

Bài viết được đăng bởi webmaster

  • LO

    rất hay thank bạn!

0