Các hàm xử lý chuỗi trong PHP - 3lcfirst — Make a string's first character lowercase levenshtein — Calculate Levenshtein distance between two strings localeconv — Get numeric formatting
Trang 1PHP cơ bản
Trang 2Giới thiệu qua về PHP
- Được Rasmus Lerdorf phát triển năm 1994 (được phát triển để phát sinh các form đăng nhập sử dụng giao thức HTTP của Unix)
- PHP được phát triển từ ngôn ngữ kịch bản (script) với mục đích xây dựng trang Web cá nhân (Personal Home Page) Sau đó đã được phát triển thành một ngôn ngữ hoàn chỉnh và được ưa chuộng trên toàn thế giới trong việc phát triển các ứng dụng Web
Trang 3Thống kê sơ bộ về PHP Nguồn: http://w3techs.com
Trang 4March 2013 Web Server Survey (netcraft.com)
Trang 68) Cấu trúc điều khiển
9) Thao tác với tập tin
10) Session và Cookie
11) Demo 1 vài bài tập PHP
Trang 7Hàm xử lý chuỗi
Trang 8Các hàm xử lý chuỗi trong PHP
addcslashes — Quote string with slashes in a C style
addslashes — Quote string with slashes
bin2hex — Convert binary data into hexadecimal representation
hop — Alias of rtrim
chr — Return a specific character
chunk_split — Split a string into smaller chunks
convert_cyr_string — Convert from one Cyrillic character set to another convert_uudecode — Decode a uuencoded string
convert_uuencode — Uuencode a string
count_chars — Return information about characters used in a string
crc32 — Calculates the crc32 polynomial of a string
crypt — One-way string hashing
echo — Output one or more strings
Trang 9Các hàm xử lý chuỗi trong PHP - 2
explode — Split a string by string
fprintf — Write a formatted string to a stream
get_html_translation_table — Returns the translation table used by htmlspecialchars and htmlentities hebrev — Convert logical Hebrew text to visual text
hebrevc — Convert logical Hebrew text to visual text with newline conversion
hex2bin — Decodes a hexadecimally encoded binary string
html_entity_decode — Convert all HTML entities to their applicable characters
htmlentities — Convert all applicable characters to HTML entities
htmlspecialchars_decode — Convert special HTML entities back to characters
htmlspecialchars — Convert special characters to HTML entities
implode — Join array elements with a string
join — Alias of implode
Trang 10Các hàm xử lý chuỗi trong PHP - 3
lcfirst — Make a string's first character lowercase
levenshtein — Calculate Levenshtein distance between two strings
localeconv — Get numeric formatting information
ltrim — Strip whitespace (or other characters) from the beginning of a string md5_file — Calculates the md5 hash of a given file
md5 — Calculate the md5 hash of a string
metaphone — Calculate the metaphone key of a string
money_format — Formats a number as a currency string
nl_langinfo — Query language and locale information
nl2br — Inserts HTML line breaks before all newlines in a string
Ngoài ra còn rất nhiều hàm xử lý chuỗi trong PHP các bạn có thể xem them tại:
http://php.net/manual/en/ref.strings.php
Trang 11Các hàm xử lý chuỗi
Demo một số hàm xử lý chuỗi trong PHP
Click vào đây để xem
Trang 122, Nhóm hàm Loại bỏ ký tự ra khỏi chuỗi
• chop( $string) : Loại bỏ những khoảng trắng ở cuối chuỗi
• trim( $string) : Loại bỏ những khoảng trắng ở đầu và cuối của chuỗi.
• ltrim( $string, $ ky_tu_loai_bo ) : Loại bỏ các ký tự ở đầu chuỗi, mặc định loại
bỏ tất cả khoảng trắng ở đầu chuỗi.
• rtrim( $string, $ky_tu_loai_bo ) : Loại bỏ các ký tự ở cuối chuỗi, mặc định loại
bỏ tất cả khoảng trắng ở cuối chuỗi.
Trang 133, Liên hệ giữa mảng và chuỗi
• explode(‘Chuỗi tách’, $string) : Tách chuỗi thành mảng bởi chuỗi tách
• implode(“Chuỗi nối”, $mang ) : Nối các phần tử mảng để tạo thành chuỗi.
• join( ‘Chuỗi nối’, $mang ) : Tương tự implode
Trang 14Ngược lại với htmlentities, hàm html_entity_decode sẽ chuyển đổi tấtcả các thực
thể HTML sang những kí tự có thể dùng được của chúng.
demo
Trang 15c, htmlspecialchars( $ string) : Tương tự htmlentities
d, htmlspecialchars_decode( $ string) : Tương tự html_entity_decode
e, strip_tags( $ string, $allow_tags )
Loại bỏ các thẻ HTML hoặc PHP ra khỏi chuỗi, Thường được sử dụng để xử lý dữ liệu do người dùng nhập trước khi lưu trữ database, hiển thị văn bản dạng trích dẫn.
$allow_tags: Các thẻ cho phép giữ lại
Ví dụ: Loại bỏ các thẻ HTML ra khỏi chuỗi $str, cho phép giữ lại thẻ <b> và <i>
$str = strip_tags( $str, '<b><i>' );
Trang 165 Các hàm tách chuỗi con
start: Vị trí bắt đầu tách
length: Chiều dài chuỗi cần tách
của chuỗi cho trước cho đến cuối chuỗi
trong chuỗi $str
Trang 17Hàm xử lý chuỗi
Một số hàm khác
• strtolower( $str ) : Chuyển tất cả ký tự sang chữ thường.
• strtoupper($string ): Chuyển tất cả ký tự sang chữ in hoa.
• ucfirst( $string ): Viết hoa kí tự đầu tiên của chuỗi.
• ucwords( $string ): Viết hoa kí tự đầu tiên của mỗi từ.
• var_dump — Hàm này rất hữu dụng khi ta cần sửa các logic error Khi cần biết 1 biến
đang chứa những gì bên trong và kiểu dữ liệu của nó ta cứ var_dump in nó ra xem xét
Trang 18$a = "test" ;
$b = "anothertest" ;
var_dump (isset( $a )); // TRUE
var_dump (isset( $a , $b )); // TRUE
unset ( $a );
var_dump (isset( $a )); // FALSE
var_dump (isset( $a , $b )); // FALSE
$foo = NULL ;
var_dump (isset( $foo )); // FALSE
?>
Trang 19strcmp(string1,string2): Hàm so sánh chuỗi, phân biệt Hoa – thường
strcasecmp(string1,string2) : Hàm so sánh chuỗi, không phân biệt hoa thường
Giá trị trả về:
0 – nếu 2 chuỗi giống nhau
<0 – nếu string1 ngắn hơn string2
>0 – nếu string1 nhiều hơn string2
Trang 20echo date("D M j G:i:s T Y") "<br>"; // Mon Mar 18 16:35:17 KRAT 2013
echo date('H:m:s \m \i\s\ \m\o\n\t\h') "<br>"; // 16:03:17 m is month
echo date("H:i:s") "<br>"; // 16:35:17
?>
Trang 21Các định dạng ngày tháng trong PHP
dd/mm/yyyy H:I:s = Ngày/ Tháng/ Năm Giờ : Phút: Giâyyyyy/mm/dd H:I:s = Năm/ Tháng/ Ngày Giờ:Phút:Giâymm/dd/yyyy H:I:s = Tháng/ Ngày/ Năm Giờ:Phút:giâylấy ra ngày hiện tại :
<?php echo date(“d/m/Y h:i:s”); ?>Kết quả nhận được:
18/03/2013 04:15:52
Trang 23Hàm về thời gian
checkdate ( int $thang , int $ngay , int $nam ): Kiểm tra tính hợp lệ của ngày, tháng và năm
nhập vào tương ứng với các biến $ngay, $thang và $nam Giá trị trả về là True hoặc False
date_default_timezone_get(): Lấy TimeZone được sử dụng cho toàn bộ script PHP
hiện hành. Giá trị trả về là tên Timezone đang được sử dụng. Ví dụ:
“America/Los_Angeles”, “Europe/London”, “Europe/Paris”, “Asia/Ho_Chi_Minh”, …
date_default_timezone_set(): Thiết đặt Timezone cho tất cả các hàm thời gian trong script
time(): Lấy thời gian hiện tại trên server dựa trên Timezone hiện hành Giá trị trả về là thời
gian dạng Unix Timestamp
Trang 24Cấu trúc điều khiển
Trang 30Vòng lặp for
for(biểu thức 1;biểu thức 2;biểu thức 3) khối lệnh
Biểu thức 1: thực hiện 1 lần khi bắt đầu vòng lặp
biểu thức 2: điều kiện lặp, được xem xét trước mỗi lần lặp lần lặpbiểu thức 3: thực hiện sau mỗi lần lặp
Trang 34Thao tác với tập tin
• Lệnh include() cho phép phối hợp giữa các file trong một PHP project.
• include() sử dụng để chia sẻ các hàm dùng chung, các đoạn mã chung trong một project có nhiều file.
• Nếu không tìm thấy file được, include() sẽ hiện thông báo warning nhưng không dừng chương trình
• PHP cung cấp một lệnh tương tực include() là require(), lệnh này có sự khác biệt là sẽ dừng ngày chương trình không tìm thấy file
• include_once() giống như include() , tuy nhiên có điểm khác biệt là chỉ include
1 lần, lần sau nếu gặp lại file này thì ko include nữa
Trang 35Thao tác với tập tin
1.basename ( string $path [, string $suffix] )
a.Trả về tên file, $suffix là phần mở rộng của file Nếu cung cấp thông tin này thì tên file trả về sẽ không chứa phần mở rộng
b.Example:
$file = "C:\bai_hat.wma";
echo basename($file, ".wma"); //bai_hat
echo basename($file); //bai_hat.wma
Trang 36Thao tác với tập tin
2.copy ( string $source, string $dest [, resource $context] )
a.Copy file từ $source to $dest Nếu $source or $dest là URL thì hàm có thể trả về failure
Trang 37Thao tác với tập tin
3.resource fopen ( string $filename, string $mode [, bool $use_include_path [, resource $context]] )
a.Mở file hoặc URL
b.Nếu $filename là một URL thì PHP sẽ tìm protocol handler(wrapper) cho protocol đó Nếu ko wrapper nào được tìm thấy thì PHP sẽ hiển thị thông báo lỗi Bạn cũng cần phải kiểm tra thông số allow_url_fopen đã được bật
c.Nếu file được chỉ định là file local thì bạn cần chắc chắn rằng đã setting quyền cho file này được đọc
d.Ở mỗi họ hệ điều hành khác nhau thì có những cách để kết thúc một dòng khác nhau Unix sử dụng “n”, windows là “rn” và Mac
là “r” Nếu bạn sử dụng sai thì script sẽ hiển thị không đúng những gì mong đợi
e.Mode: chỉ định kiểu mà bạn muốn truy cập tới stream Danh sách mode:
·“r”: mở để đọc, đặt con trỏ ở đầu file
·“r+”: mở để đọc và ghi, con trỏ sẽ được đặt ở đầu file
·“w”: mở chỉ để ghi, con trỏ file đặt ở đầu, tiến hành xóa hết dữ liệu của file Nếu file ko tồn tại thì sẽ tạo file mới
·“w+”: tương tự như w nhưng có thể đọc
·“a”: mở file chỉ để ghi, con trỏ file đặt ở cuối, nếu file ko tồn tại thì sẽ tự động tạo
·“a+” tương tự như a, có thể đọc file
·“x”: tạo file và chỉ open để ghi, con trỏ đặt ở đầu file Nếu file đã tồn tại thì sẽ thông báo lỗi, nếu file chưa tồn tại sẽ tự động tạo
·“x+” tương tự như x, có thêm chức năng đọc
f.Example:
$handle = fopen("C:AuditionKhi da muon mang.wma", "r");
$handle3 = fopen("ftp:// userassword@diendanphp.com ”)//Địa chỉ email này đã được bảo vệ từ spam bots, bạn cần kích hoạt Javascript để xem nó /somefile.txt", "w");
Trang 38Thao tác với tập tin
4.string fgets ( resource $handle [, int $length] )
a.Đọc nội dung file theo từng dòng
b.Nếu $length ko được chỉ định thì hàm sẽ đọc đến dòng cuối cùng c.Example:
//09:34:28 VirtualDisk - couldn't load BBArchive.dll - 126
//09:34:40 VirtualDisk - couldn't load BBArchive.dll - 126
Trang 39Thao tác với tập tin
5.string fgetss ( resource $handle [, int $length [, string $allowable_tags]] )
a.Đọc nội dung file theo từng dòng, loại bỏ các thẻ HTML và thẻ PHP trong nội dung đọc được
b.$allowable_tags chỉ định thẻ nào ko bị loại bỏ
c.$length ko được chỉ định thì hàm sẽ đọc đến cuối file
d.Example: trong ví dụ này thì thẻ a sẽ ko bị loại bỏ
Trang 40Thao tác với tập tin
6.string file_get_contents ( string $filename [, int $flags [, resource $context [, int $offset [, int $maxlen]]]] )
a.Function đọc nội dung file và trả về một chuỗi, hàm bắt đầu đọc từ giá trị offset đến $maxlen đã được chỉ định, giá trị này tính theo bytes Nếu thất bại thì hàm trả về FALSE
b.$flags chỉ có trong PHP6
Trang 41Thao tác với tập tin
7.fread ( resource $handle , int $length )
a.Đọc nội dung file giới hạn bởi $length(bytes)
b.Example:
$source = "C:testlog.php";
$handle = fopen($source, "r");
$contents = fread($handle, filesize($source));
var_dump($contents); //ouput: string(158) "09:34:28 VirtualDisk - xxxxxxxx"
Trang 42Thao tác với tập tin
8.int file_put_contents ( string $filename, mixed $data [, int $flags [, resource
$context]] )
a.Cho phép ghi nội dung vào file, nếu file ko tồn tại thì sẽ tạo file mới
b.$data ở đây có thể là một string, array hoặc stream resource Nếu data là một array thì function này sẽ tự động convert array thành string và ghi vào file Việc convert này tương đương với việc ta dùng hàm implode(“”, $array)
c.$flags ở đây nhận một số giá trị:
·FILE_APPEND: ghi tiếp tục vào file, ko ghi đè
·LOCK_EX: lock file trước khi ghi nội dung
$source = "C:testlog.php";
$data = "This is a string";
$data2 = array('element 1', 'element 2','element 3');
$res = file_put_contents($source, $data2); //Content of file: element 1element
2element 3
$res1 = file_put_contents($source, $data); //Content of file: This is a string
Trang 43Thao tác với tập tin
9.array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string
$enclosure [, string $escape]]]] )
a.Đọc nội dung file CSV theo từng dòng
Trang 44Thao tác với tập tin
10.int fputcsv ( resource $handle, array $fields [, string $delimiter [, string $enclosure]] )
a.Ghi nội dung ra file CSV
Trang 45Session và cookie
1- Tổng quan về cookie:
Cookie là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người
sử dụng Nó được trình duyệt gởi ngược lên lại server mỗi khi browser tải 1 trang web từ server
Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào website trên server Mỗi website có thể lưu trữ những thông tin khác nhau trong
cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã login hay chưa, v.v
Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới
browser Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau
Trang 47Session và cookie
Để thiết lập 1 session ta sử dụng cú pháp: session_start();
Đoạn code này phải được nằm trên các kịch bản HTML. Hoặc những lệnh echo, printf.
Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session. Chúng ta còn phải đăng ký 1 giá trị session. Để tiện cho việc gán giá trị cho session đó.
Trang 48b- Sử dụng giá trị của session:
Giống với cookie Để sử dụng giá trị của session ta sử dụng mã lệnh sau:
Cú pháp: $_SESSION["name"]
c- Hủy bỏ session:
Để hủy bỏ giá trị của session ta có những cách sau:
session_destroy() // Cho phép hủy bỏ toàn bộ giá trị của session
session_unset()// Cho phép hủy bỏ session
Trang 49Một số trang dạy PHP cơ bản và nâng cao:http://php.net/
http://www.w3schools.com/PHP/default.asp
Trang 50Cám ơn thầy và các bạn đã theo dõi