Bài giảng Lập trình Web - Bài 4.3: Biểu thức chính qui (Regular Expression)
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 tìm kiếm, thay thế
. preg_split tách chuỗi
kiểm tra, so khớp
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 . "<br>";
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ụ
<?php
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
<?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
<?php
require_once "classDB.php";
$d = new db();
echo "<p>user = {$d->user} </p>";
echo "<p>author = {$d->author} </p>";
echo "<p>version = {$d->version} </p>";
?>
Thực hiện câu query và hiển thị kết quả
<?php
require_once "classDB.php";
$d = new db;
$d->getdata("select * from tin where
TinNoiBat=1");
while ($row = $d->fetchRow() ) echo "<p>" ,
$row['TieuDe'], "</p>";
?>
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
Bạn đang xem tài liệu "Bài giảng Lập trình Web - Bài 4.3: Biểu thức chính qui (Regular Expression)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- bai_giang_lap_trinh_web_bai_4_3_bieu_thuc_chinh_qui_regular.pdf