Hàm sscanf() trong PHP
Mô hình
Phân tích chuỗi:
<?php $str = "age:30 weight:60kg"; sscanf($str,"age:%d weight:%dkg",$age,$weight); // Hiển thị loại và giá trị var_dump($age,$weight); ?>
Định nghĩa và cách sử dụng
Hàm sscanf() phân tích từ chuỗi đầu vào dựa trên định dạng. Hàm sscanf() phân tích chuỗi từ chuỗi đầu vào dựa trên chuỗi định dạng.
Nếu chỉ truyền hai tham số cho hàm này, dữ liệu sẽ được trả về dưới dạng mảng. Nếu truyền thêm các tham số khác, dữ liệu được phân tích sẽ được lưu trữ trong các tham số này. Nếu số lượng dấu phân cách lớn hơn số lượng biến chứa chúng, sẽ xảy ra lỗi. Tuy nhiên, nếu số lượng dấu phân cách nhỏ hơn số lượng biến chứa chúng, các biến bổ sung sẽ chứa NULL.
Các hàm liên quan:
Cú pháp
sscanf(string,format,arg1,arg2,arg++)
Tham số | Mô tả |
---|---|
string | Chắc chắn. Định nghĩa chuỗi cần đọc. |
format |
Chắc chắn. Định nghĩa định dạng cần sử dụng. Các giá trị định dạng có thể:
Giá trị định dạng bổ sung. Đúng cần đặt giữa % và chữ cái (ví dụ: %.2f)
Chú thích:Nếu sử dụng nhiều giá trị định dạng trên, chúng phải được sử dụng theo thứ tự trên. |
arg1 | Tùy chọn. Lưu trữ dữ liệu trong biến thứ nhất. |
arg2 | Tùy chọn. Lưu trữ dữ liệu trong biến thứ hai. |
arg++ | Tùy chọn. Lưu trữ dữ liệu trong biến thứ ba, bốn, v.v. |
Chi tiết kỹ thuật
Giá trị trả về: | Nếu chỉ truyền hai tham số cho hàm này, dữ liệu sẽ được trả về dưới dạng mảng. Nếu không, nếu truyền thêm các tham số khác, dữ liệu được phân tích sẽ được lưu trữ trong các tham số này. Nếu số lượng dấu phân cách lớn hơn số lượng biến chứa chúng, sẽ xảy ra lỗi. Tuy nhiên, nếu số lượng dấu phân cách nhỏ hơn số lượng biến chứa chúng, các biến bổ sung sẽ chứa NULL. |
Phiên bản PHP: | 4.0.1+ |
Thêm nhiều ví dụ
Ví dụ 1
Sử dụng giá trị định dạng %s, %d và %c:
<?php $str = "If you divide 4 by 2 you'll get 2"; $format = sscanf($str,"%s %s %s %d %s %d %s %s %c"); print_r($format); ?>