Luyenkim.Net!

...where your idea grows!

 
  • Decrease font size
  • Default font size
  • Increase font size
Trang chủ arrow Công nghệ thông tin arrow Kinh nghiệm-thủ thuật arrow Các hàm xử lý chuỗi hay xâu kí tự
Các hàm xử lý chuỗi hay xâu kí tự PDF Print E-mail
(4 votes)
Chủ nhật, 07 Tháng mười 2007
Article Index
Các hàm xử lý chuỗi hay xâu kí tự
Escape character
Modifiers
 

Bài viết này sẽ giới thiệu về các modifiers

Modifier

Chức năng

i

Không phân biệt chữ hoa và chữ thường

m

Thay đổi ý nghĩa của ^ và $, theo đó, ^ sẽ phù hợp với ngay sau \n (newline character) và $ phù hợp với ngay trước \n

     $str = "ABC\nDEF\nGHI";
preg_match('@^DEF@', $str, $matches1);
preg_match('@^DEF@m', $str, $matches2);
print_r($matches1);
print_r($matches2);
?>
kết quả là
Array
(
)
Array
(
[0] => DEF
)

s

Khi dùng modifier này, dấu chấm (.) sẽ phù hợp với \n. Mặc định (ko dùng) là không

     $str = "ABC\nDEF\nGHI";
preg_match('@BC.DE@', $str, $matches1);
preg_match('@BC.DE@s', $str, $matches2);
print_r($matches1);
print_r($matches2);
?>
kết quả là
Array
(
)
Array
(
[0] => BC
DE
)

x

Bạn có thể thêm tùy ý khoảng trắng trong mẫu mà không ảnh hưởng kết quả tìm kiếm

      $str = "ABC\nDEF\nGHI";
preg_match('@A B C@', $str, $matches1);
preg_match('@A B C@x', $str, $matches2);
print_r($matches1);
print_r($matches2);
?>
kết quả là
Array
(
)
Array
(
[0] => ABC
)

e

Chỉ có tác dụng khi bạn dùng hàm preg_replace. Nếu dùng modifier này, chuỗi thay thế của bạn được xem như dòng lệnh PHP.
Ví dụ:
$content = preg_replace('@name="(.*?)"@e','strtolower("\\1")',$content);

a

Giống như việc bạn dùng ^ trong mẫu

      $str = "ABC";
preg_match('@BC@', $str, $matches1);
preg_match('@BC@A', $str, $matches2);
print_r($matches1);
print_r($matches2);
?>
kết quà là
Array
(
[0] => BC
)
Array
(
)

D

Làm cho kí tự $ chỉ phù hợp với những chuỗi tận cùng không là newline \n

       $str = "ABC\n";
preg_match('@BC$@', $str, $matches1);
preg_match('@BC$@D', $str, $matches2);
print_r($matches1);
print_r($matches2);
?>
kết quả là
Array
(
[0] => BC
)
Array
(
)

U

<?php
$str = '<a href="http://php.net/">PHP</a> has an '.
'<a href="http://php.net/manual">excellent</a> manual.';
$pattern = '@<a.*>(.*)</a>@';
preg_match($pattern, $str, $matches);
print_r($matches);
?>

Kết quà là

Array
(
[0] => <a href="http://php.net/">PHP</a> has an
<a href="http://php.net/manual">excellent</a>
[1] => excellent
)
Nếu không dùng modifier U, bạn sẽ nhận được kết quả từ <a đầu tiên đến </a> cuối
cùng và phần tử 1 của mảng sẽ ứng với kết quả cuối cùng phù hợp là excellent.
Nếu dùng U, bạn thay $pattern thành
 $pattern = '@<a.*>(.*)</a>@U';
thì kết quả là
Array
(
    [0] => <a href="http://php.net/">PHP</a>
    [1] => PHP
)
Lấy từ <a đầu tiên cho đến </a> gần nhất. Và phần tử mang chỉ số 1 sẽ ứng với
kết quả đầu tiên tìm thấy. 

X

Tắt thông báo lỗi nếu tìm thấy một escape character không hợp lệ.

       $str = '\\h';
preg_match('@\\h@', $str, $matches1);
preg_match('@\\h@X', $str, $matches2);
?>

kết quả là

Warning: preg_match(): Compilation failed: unrecognized 
character follows \ at offset 1 in /dat/docs/book/
prenticehall/php5powerprogramming/chapters/draft/10-
mainstream-extensions/pcre/mod-X.php on line 4

u

Bật chế độ UTF-8, PRCE sẽ hiểu mẫu bạn đưa vào là mã hóa dàng utf-8. Dấu chấm (.) sẽ đại diện cho những kí tự như é....

       $str = 'Dérick';
preg_match('@D.rick@', $str, $matches1);
preg_match('@D.rick@u', $str, $matches2);
print_r($matches1);
print_r($matches2);
?>
kết quả là
Array
(
)
Array
(
[0] => Dérick
)
 

Nguồn: http://quanphp.net/forum/viewtopic.php?t=21 

 




Newer news items:
Older news items:

 

Please install Flash and turn on Javascript.

Đăng nhập






Lost Password?
No account yet? Register

Liên kết website

vinaora.com
Luyenkim.net
vnfolk.com
Trung tam ho tro giao vien
http://www.clevermind.com.vn/
Thư viện cộng đồng

Thống kê

We have 10 guests online