(PHP 4, PHP 5)
addcslashes – Thêm dấu gạch chéo vào chuỗi theo kiểu C
Miêu tả hàm addcslashes
1 |
string addcslashes ( string $str , string $charlist ) |
Tham số
string
Chuỗi ký tự cần xử lý.
charlist
Danh sách các ký tự cần thêm dấu gạch chéo. Nếu charlist chứa các ký tự như \n, \r …, chúng sẽ được chuyển sang kiểu C, những ký tự không phải chữ hoặc số số có mã ASCII nhỏ hơn 32 hoặc lớn hơn 126 sẽ được chuyển đổi để hiển thị dưới dạng cơ số tám.
Khi bạn nhập chuỗi ký tự trong tham số charlist hãy chắc chắn rằng bạn biết tất cả những ký tự sẽ được chuyển đổi danh sách trong đó.
1 2 3 4 5 6 |
<?php echo addcslashes('foo[ ]', 'A..z'); // KẾT QUẢ : \f\o\o\[ \] // Tất cả ký tự viết hoa hay viết thường đều được xử lý // Những ký tự [\]^_` sẽ tự động được xử lý ?> |
Ngoài ra, nếu ký tự bắt đầu trong charlist có giá trị ASCII cao hơn ký tự đứng đằng sau, thì những ký tự giữa khoảng này sẽ không được xử lý. Hệ thống chỉ xử lý ký tự đầu tiên, ký tự cuối cùng và dấu chấm. Bạn có thể sử dụng hàm ord() để tìm giá trị của từng ký tự trong bảng mã ASCII.
1 2 3 4 |
<?php echo addcslashes("Zzoo['.']Aaa", 'z..A'); // KẾT QUẢ: Z\zoo['\.']\Aab ?> |
Hãy cẩn thận nếu bạn chọn các ký tự cần xử lý như 0, a, b, f, n, r, t và v. Chúng sẽ được chuyển thành \0, \a, \b, \f, \n, \r, \t và \v, đây là những chuỗi ký tự đã được định nghĩa trước trong C. Nhiều ký tự trong chuỗi này cũng được định nghĩa sẵn trong các ngôn ngữ dựa trên C, bao gồm cả PHP, vì thế kế quả nhận được sau khi sử dụng hàm addcslashes() có thể sẽ không như bạn mong muốn nếu chúng chứa những ký tự trùng với ký tự đã được định sẵn này. Ví dụ : \t : Tab, \n : xuống dòng…
Giá trị trả về
Trả về chuỗi ký tự đã được thêm dấu gạch chéo.
Ví dụ
Tham số charlist như “\0..\37” sẽ xử lý tất cả các ký tự có mã ASCII từ 0 đến 31.
Ví dụ 1 về hàm addcslashes()
1 2 3 |
<?php $escaped = addcslashes($not_escaped, "\0..\37!@\177..\377"); ?> |