Hướng dẫn dùng char name trong PHP
Việc xử lý chuỗi trong lập trình PHP rất quan trọng vì dữ liệu để hiển thị trên trang web đa phần là ở dạng chuỗi. Vì thế việc hiểu và nắm vững kiến thức trong xử lý chuỗi sẽ giúp bạn tối ưu hóa hiệu suất của website và đẩy nhanh tiến độ thiết kế website. Dưới đây là một số hàm và toán tử xử lý chuỗi
trong PHP: Nội dung chính Toán tử nối chuỗi: Để nối 2 chuỗi chúng ta sử dụng toán tử
[.] Ví dụ: echo "abc"." "."def"; Các hàm xử lý chuỗi cơ bản Hàm strlen[string]: được sử dụng để tính chiều dài của chuỗi Ví dụ: Hàm str_word_count[string $string [, int $format = 0 [, string $charlist ]]] : đếm tổng số từ có trong chuỗi Ví dụ: Hàm
strtoupper[string]: đổi chữ thường thành hoa. Hàm tìm kiếm và thay thế chuỗi Hàm substr[ string $string , int $start [, int $length ] ]: cắt ra một phần của chuỗi từ vị trí start một đoạn được chỉ định bằng tham số length
Ví dụ: "; echo substr["Hello world",1].""; echo substr["Hello world",3]." "; echo substr["Hello world",7]." "; echo " "; // Negative numbers: echo substr["Hello world",-1]." "; echo substr["Hello world",-10]." "; echo substr["Hello world",-8]." "; echo substr["Hello world",-4]." "; ?> Kết quả trả về: d d Hàm explode[$delimiter, $string]: chuyển một chuỗi string thành một mảng các phần tử với ký tự tách mảng là delimiter. Ví dụ: var_dump[explode[' ', $str]]; /*Kết quả array 0 => 'programming', 1 => 'and', 2 => 'digital' , 3 => 'marketing', 4 => 'training' Hàm implode[$delimiter, $piecesarray]: ngược với hàm explode, nó chuyển một mảng $piecesarray thành chuỗi và mỗi phần tử trong mảng được nối với nhau bởi chuỗi $delimiter Ví dụ: Hàm strstr[ $string, $needle]: Tách một chuỗi bắt đầu từ $needle cho đến hết chuỗi. Ví dụ: Hàm strpos[$string, $needle]: Tìm vị trí của chuỗi $needle trong chuỗi $string, kết quả trả về vị trí đầu tiên của $needle nếu tìm thấy và false nếu không tìm thấy. Ví dụ: $mystring = 'abc'; $findme = 'b'; $pos = strpos[$mystring, $findme]; echo $pos; //kết quả: 1Nội dung chính
Đã đăng vào thg 12 2, 2017 6:45 CH 7 phút đọc Đối với một lập trình viên PHP hay MySQL, mọi thứ có vẻ khá dễ dàng và thoải mái khi làm việc với dữ liệu chỉ gồm các ký tự tiếng Anh. Cho đến khi bạn vướng vào sự rắc rối của mã hóa UTF-8 trong xử lý ngôn ngữ không phải tiếng Anh. Nói sơ lược về mã hóa UTF-8 thì đây là một kiểu mã hóa ký tự của tập ký tự Unicode. Nó được thiết kế để tương thích ngược với mã hóa ASCII và tránh những nhược điểm của UTF-16 và UTF-32. UTF-8 trở thành kiểu mã hóa phổ biến và chiếm ưu thế khi hơn một nửa số trang web hiện tại sử dụng kiểu mã hóa này. Trong bài viết này, sẽ có 3 hướng dẫn chính được trình bày để có thể sử dụng mã hóa UTF-8 trong PHP và MySQL:
PHP và mã hóa UTF-8Để sử dụng UTF-8 là kiểu mã hóa ký tự mặc định, thay đổi ở file config php.ini như sau: default_charset = "utf-8"; Thay đổi trong PHP code: Ở header:header['Content-Type: text/html; charset=utf-8']; Trong file XML:Tuy nhiên, không phải tất cả ký tự UTF-8 đều được chấp nhận ở trong XML, vì vậy cần loại bỏ những ký tự này. Một hàm hữu dụng sau đây có thể giải quyết vấn đề trên: function utf8_for_xml[$string] { return preg_replace['/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string]; }Trong HTML:
Chỉ định UTF-8 trong hàm hmlspecialchars:htmlspecialchars[$str, ENT_NOQUOTES, "UTF-8"] Khi kết nối với MySQL:Sử dụng hàm mysql_set_charset: $link = mysql_connect['localhost', 'user', 'password']; mysql_set_charset['utf8', $link];Từ PHP 5.5.0, hàm mysql_set_charset được thay thế bởi mysql::set_charset $mysqli = new mysqli["localhost", "my_user", "my_password", "test"]; /* check connection */ if [mysqli_connect_errno[]] { printf["Connect failed: %s\n", mysqli_connect_error[]]; exit[]; } /* change character set to utf8 */ if [!$mysqli->set_charset["utf8"]] { printf["Error loading character set utf8: %s\n", $mysqli->error]; } else { printf["Current character set: %s\n", $mysqli->character_set_name[]]; } $mysqli->close[];Sử dụng hàm xử lý chuỗi tương thích với UTF-8:Có nhiều hàm sẽ lỗi hoặc xử lý sai khi một ký tự cần nhiều hơn 1 byte [như UTF-8]. Ví dụ hàm strlen sẽ trả về số lượng byte chứ không phải số lượng ký tự. Để giải quyết việc này có 2 tùy chọn:
MySQL với mã hóa UTF-8Thay đổi trong file config my.ini:[client] default-character-set=UTF-8 [mysql] default-character-set=UTF-8 [mysqld] character-set-client-handshake = false #force encoding to uft8 character-set-server=UTF-8 collation-server=UTF-8_general_ci [mysqld_safe] default-character-set=UTF-8
Chuyển đổi dữ liệu sử dụng mã hóa latin1 sang UTF-8
Lời kếtMã hóa dữ liệu đòi hỏi sự cẩn trọng và tỉ mỉ. Nếu hiểu rõ về nó, lập trình viên có thể tiết kiệm một khoảng thời gian và công sức đáng kể khi đối mặt với những vấn đề về dữ liệu. Bài viết này như một lần nữa khẳng định tầm quan trọng của việc cân nhắc khi định nghĩa charset trong dự án cũng như môi trường phát triển ngay từ ban đầu. Referrence: //www.toptal.com/php/a-utf-8-primer-for-php-and-mysql All rights reserved |