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
Trang 1Biểu thức chính qui
Regular Expression
Trang 2Biể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 kiểm tra, so khớp
preg_replace tìm kiếm, thay thế
preg_split tách chuỗi
2
Trang 3Biể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ề
$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)
Trang 4Biể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
Trang 5Biể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é";
$subject );
Trang 6Biể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>";
Trang 7Biể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
Trang 8Tì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
Trang 9Tì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
Trang 10Lập trình hướng đối tượng
Trang 11Lậ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
Trang 12Lập trình hướng đối tượng
Tạo đối tượng
$a = new SimpleClass();
$a-> displayVar();
Đóng gói
Đa thừa kế
Overloading
13
Trang 13Ví dụ về kết nối DataBase
Định nghĩa lớp classDB.php
<?php
class db {
?>
14
Trang 14function 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
Trang 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
Trang 16HTACCESS
Trang 17HTACCESS 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
Trang 18HTACCESS 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
[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
Trang 19 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
HTACCESS và ứng dụng của nó