Tải bản đầy đủ (.pdf) (19 trang)

Bài giảng - Công nghệ Web và ứng dụng 4.3 PHP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (536.02 KB, 19 trang )

Biểu thức chính qui
Regular Expression


Biểu thức chính qui
Biểu thức chính qui (hay biểu thức quy
tắc) là mẫu chuỗi dùng để so khớp, kiểm
tra các chuỗi khác
 Php hỗ trợ các hàm


 preg_match
 preg_replace
 preg_split

kiểm tra, so khớp
tìm kiếm, thay thế
tách chuỗi

2


Biểu thức chính qui


Hàm preg_match($rule, $str, $result)
 $rule là chuỗi RE do ta quy định
 $str là chuỗi cần so sánh
 $result là kết quả trả về




Hàm preg_replace($pattern,
$replacement, $subject)
 $partern: là chuỗi RE
 $replacement: là chuỗi thay thế
 $subject: là chuỗi muốn duyệt



Hàm preg_split($pattern, $string)


Biểu thức chính qui


Tìm những từ bắt đầu là A, sau đó là 2 ký tự
a-z

$string="Anh thương em anh đi đâu đâu";
$pattern="/A[a-z][a-z]/";
preg_match($pattern, $string, $match);
echo $match[0];

4


Biểu thức chính qui


Tìm thay từ cháu thành bé


$partern = "/cháu/";
$subject = "cháu lên ba, cháu đi mẫu giáo";
$replacement = "bé";
echo preg_replace($partern, $replacement,
$subject);


Biểu thức chính qui
Tách chuỗi thành các chuỗi con
$ip = "192.168.7.23";
$iparr = preg_split("/\./", $ip);
foreach($iparr as $t)
echo $t . "
";



Biểu thức chính qui


Các ký tự đặc biệt trong RE












^ : diễn tả vị trí bắt đầu của 1 chuỗi; “^Binh”
$ : diễn tả vị trí kết thúc của 1 chuỗi; “đinh$”
* : có nghĩa không hoặc nhiều ký tự; “ab*”
+ : có nghĩa MỘT hoặc nhiều ký tự; “ab+”
? : có nghĩa KHÔNG hoặc MỘT ký tự; “ab?”
{x}: có nghĩ là x ký tự; “ab{2}”
(): diễn tả 1 chuỗi ký tự; “a(bc)*”; “a(bc){1,5}”
| : giống toán tử OR
. : diễn tả 1 ký tự bất kỳ
[]: diễn tả tập hợp các ký tụ
7


Tìm kiếm với php
Thông thường chúng ta có thể thực hiện việc
tìm kiếm theo nhiều tiêu chí khác nhau
 Vd tìm sản phẩm theo từ khóa, hãng SX, từ
giá – đến giá


 Phần tạo form
• Lấy dữ liệu từ db đưa vào select box hãng
• Dùng Jquery+Ajax lấy DS SP theo
hãng sx

 Phần xử lý kết quả
• Viết code lấy dữ liệu từ db
• Viết code hiện kết quả

9


Tìm kiếm


Tìm tin theo từ khóa, loại tin và thời gian



Tìm theo nhiều loại dữ liệu khác nhau



Tìm kiếm toàn văn: thực hiện qua 2 bước
 Index: build chỉ mục
 Search: thực hiện tìm kiếm theo chỉ muc
10


Lập trình
hướng đối tượng


Lập trình hướng đối tượng


Khai báo lớp
class tên_lớp{
// Danh sách các biến, hằng, lớp... (thuộc tính)

// Danh sách các hàm (phương thức)
}



Ví dụ
class SimpleClass{
public $var = 'a default value';
public function displayVar() {
echo $this->var;
}
}
?>
12


Lập trình hướng đối tượng


Tạo đối tượng
$a = new SimpleClass();
$a-> displayVar();



Các phương thức OOP
 Đóng gói
 Đa thừa kế
 Overloading


13


Ví dụ về kết nối DataBase


Định nghĩa lớp classDB.php
class db {
public $conn = NULL;
public $result = NULL;
public $host="localhost";
public $user="root";
public $pass="";
public $database="qltin";
private $author="ABC";
?>
14


function __construct(){
$this->conn = mysql_connect($this->host,
$this->user,
$this->pass);
mysql_select_db($this -> database, $this->conn);
mysql_query("set names 'utf8'");
}
function getdata($sql) {
$this->result = mysql_query($sql);

}
function fetchRow() {
if (is_resource($this->result)==false)
return false;
$row = mysql_fetch_assoc($this->result);
return $row;
}
15




Sử dụng attribute

require_once "classDB.php";
$d = new db();
echo "

user = {$d->user}

";
echo "

author = {$d->author}

";
echo "

version = {$d->version}

";
?>


Thực hiện câu query và hiển thị kết quả

require_once "classDB.php";
$d = new db;
$d->getdata("select * from tin where
TinNoiBat=1");

while ($row = $d->fetchRow() ) echo "

" ,
$row['TieuDe'], "

";
?>
16


HTACCESS


HTACCESS và ứng dụng của nó
Trong một website có thể chứa nhiều file
.htaccess
 .htaccess là file text dùng để cấu hình hoạt
động cho webserver Apache bằng nhiều lệnh
khác nhau
 mod_Rwrite: thay đổi địa chỉ trang web từ một
địa chỉ web động sang một địa chỉ web tĩnh
thông qua các luật chuyển đổi


VD địa chỉ thật /news/tinthethao.php?idLT=1 được
thay bằng địa chỉ ảo /news/tinthethao


RewriteEngine on | off bật tắt chức năng
rewrite
18


HTACCESS và ứng dụng của nó



RewriteRule: luật điều chỉnh địa chỉ thật
thành địa chỉ ảo
 Cú pháp RewriteRule pattern substitution [flags]
pattern: regex
substitution: địa chỉ gốc do client request
flags: chỉ thị cách thức hoạt động
[R]: force Redirect
[F]: force ULR to be forbidden
[L]: last rule (dùng lại ở rule này)
[NC]: no case
 VD: RewriteRule ^dangky/$ dk.php [L]

19


HTACCESS và ứng dụng của nó













RewriteEngine on
RewriteRule users/register/$ dangky.php [L]
RewriteRule users/changepass/$ doipass.php [L]
RewriteRule users/sendpass/$ goipass.php [L]
RewriteRule users/logout/$ thoat.php [L]
RewriteRule ^users/register/$ dangkythanhvien.php
[L]
RewriteRule ^users/changepass/$ doipass.php [L]
RewriteRule ^users/sendpass/$ goipass.php [L]
RewriteRule ^users/logout/$ thoat.php [L]
20



×