Kích hoạt mod mod_rewrite có sẵn trong Apache bẳng cách sửa trong file httpd.conf, bạn tìm đến dòng chứa rewrite_module rồi bỏ dấu # (nếu có) ở đầu đi. Sau đó restart Apache. Nếu bạn dùng các host trên internet thì có thể đã có sẵn rồi.
Để viết lại 1 đường dẫn đẹp cho trang web ví du:
http://thulinhrong.com/index.php?act=html
ta chuyển thành thulinhrong.com/html
thì trong .htaccess hỗ trợ chúng ta:
Tiếp đến là viết cú pháp RewriteRule: RewriteRule có 2 biến RewriteRule(biến1, biến2)
RewriteRule ^duong_dan_mới $ Duong_dan_cũ
Ví dụ:
RewriteRule ^topic_([0-9]*).html index.php?topic=$1
Ví dụ: index.php?topic=1 thành topic_1.html
RewriteRule ^article/([0-9]*)/page/([0-9]*) index.php?article=$1&page=$2
ví dụ: index.php?article=1&page=2 thành article/1/page/2
Cú pháp để viết các Rule này giống như cách viết của biểu thức chính quy Regular Expression. ví dụ như sau:
.+: ghép chuỗi
( ): dữ liệu thay đổi.
(.*) nhận tất cả các giá trị.
([0-9]*) chỉ nhận các giá trị là số, từ 0-9.
([a-zA-Z]*) chỉ nhận các giá trị là chữ cái, từ a-z và A-Z.
www.thulinhrong.com
Thứ Hai, 22 tháng 4, 2013
Chức năng của biến $_SERVER[]
(Nguồn sinhvienit.net)
Có thể có nhiều bạn bỡ ngỡ, thắc mắc không hiểu chức năng của biến:
$_SERVER["SERVER_NAME"], $_SERVER["SERVER_PORT"]…Sau khi đọc chú thích dưới đây, các bạn sẽ gỡ
bỏ được các khúc mắc đó.
$_SERVER['HTTP_HOST'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là
sinhvienit.net
$_SERVER['PHP_SELF'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là
/@forum/showthread.php
$_SERVER['REQUEST_TIME'] = Thời gian mà Client gửi request, ở dạng TIME _STAMP
$_SERVER['QUERY_STRING'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là t =
2053
$_SERVER['DOCUMENT_ROOT'] = Thư mục gốc chứa mã nguồn. VD: /home/sinhvienit/public_html (Đối với
Linux) hay C:\www (Đối với windows)
$_SERVER['HTTP_REFERER'] = Cái này bạn đang trên http://www.google.com.vn/search?q=sinhvienit mà
click vào link tới sinhvienit.net thì nó có giá trị http://www.google.com.vn/search?q=sinhvienit
$_SERVER['REMOTE_HOST'] = Hostname của người truy cập
$_SERVER['REMOTE_PORT'] = Port mà trình duyệt mở ra để kết nối tới server
$_SERVER['REQUEST_URI'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là
/@forum/showthread.php?t=2053
$_SERVER['SERVER_NAME'] = Tên của server (Gần giống với computername) ở máy PC của mình. Ví dụ
server.sinhvienit.net
$_SERVER['SERVER_ADDR'] = IP của server
$_SERVER['REMOTE_ADDR'] = IP của người truy cập
$_SERVER['HTTP_USER_AGENT'] = Thông tin về trình duyệt của người truy cập
Có thể có nhiều bạn bỡ ngỡ, thắc mắc không hiểu chức năng của biến:
$_SERVER["SERVER_NAME"], $_SERVER["SERVER_PORT"]…Sau khi đọc chú thích dưới đây, các bạn sẽ gỡ
bỏ được các khúc mắc đó.
$_SERVER['HTTP_HOST'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là
sinhvienit.net
$_SERVER['PHP_SELF'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là
/@forum/showthread.php
$_SERVER['REQUEST_TIME'] = Thời gian mà Client gửi request, ở dạng TIME _STAMP
$_SERVER['QUERY_STRING'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là t =
2053
$_SERVER['DOCUMENT_ROOT'] = Thư mục gốc chứa mã nguồn. VD: /home/sinhvienit/public_html (Đối với
Linux) hay C:\www (Đối với windows)
$_SERVER['HTTP_REFERER'] = Cái này bạn đang trên http://www.google.com.vn/search?q=sinhvienit mà
click vào link tới sinhvienit.net thì nó có giá trị http://www.google.com.vn/search?q=sinhvienit
$_SERVER['REMOTE_HOST'] = Hostname của người truy cập
$_SERVER['REMOTE_PORT'] = Port mà trình duyệt mở ra để kết nối tới server
$_SERVER['REQUEST_URI'] = Bạn vào http://sinhvienit.net/@forum/showthread.php?t=2053 thì kết quả là
/@forum/showthread.php?t=2053
$_SERVER['SERVER_NAME'] = Tên của server (Gần giống với computername) ở máy PC của mình. Ví dụ
server.sinhvienit.net
$_SERVER['SERVER_ADDR'] = IP của server
$_SERVER['REMOTE_ADDR'] = IP của người truy cập
$_SERVER['HTTP_USER_AGENT'] = Thông tin về trình duyệt của người truy cập
Thứ Sáu, 19 tháng 4, 2013
Dùng kết hợp javascript để xóa 1 thành viên or bài viết!
Nếu muốn xóa 1 bài viết. Nhưng muốn làm thêm 1 chức năng có chắc chắn xóa hay không, vì nhiều khi mình lỡ kích chuột nhầm ?
<a href="/duongdan" onclick="return confirm('Bạn có chắc chắn xóa không?')?true:false;">Xóa</a>
<a href="/duongdan" onclick="return confirm('Bạn có chắc chắn xóa không?')?true:false;">Xóa</a>
Nó sẽ hiện lên 1 để hỏi, nếu Ok thì trả về true, còn ngược lại thì không làm gì.
Một số hàm xử lý chuỗi thường gặp trong PHP
1, Nhóm hàm in thông tin lên trình duyệt
echo, print là 2 hàm thường được xử dụng nhiều nhất để in thông tin (Chuỗi, giá trị biến, …) lên trình duyệt.
Ví dụ:
1 | echo 'Welcome to PHP'; //Hoặc echo ('Welcome…'); |
2 | print 'Welcome to Ewebvn'; //Hoặc print( 'Welcome…'); |
Sự khác nhau giữa echo và print
Echo | |
Kiểu void | Kiểu int |
Không có giá trị trả về | Luôn luôn return về 1 |
Lời khuyên: Nên sử dụng hàm echo vì echo xử lý nhanh hơn print một chút vì không phải return về giá trị
2, strlen( $str ) : Đếm tổng số ký tự có trong chuỗi
Ví dụ:
1 | echo strlen ( 'Welcom to Ewebvn.com' ); |
Kết quả: 20
3, str_word_count ( $str ) : Đếm tổng số từ có trong chuỗi
Ví dụ:
1 | echo str_word_count ( 'Welcome to Ewebvn' ); |
Kết quả: 3
4, addslashes( $str )
Hàm addslashes sẽ thêm vào ký tự \ (back slash) trước các ký tự ‘ và ” trong một chuỗi, có tác dụng tránh lỗi SQL injection khi thêm dữ liệu vào database.
Ví dụ:
1 | $str = 'Chao mung ban den voi "Ewebvn"' ; |
2 | echo addslashes ( $str ); |
3 | $str = "Mot so ham 'xu ly chuoi' trong PHP" ; |
4 | echo "<br />" . addslashes ( $str ); |
Kết quả:
Chao mung ban den voi \”Khoa hoc PHP\”
Mot so ham \’xu ly chuoi\’ trong PHP
Mot so ham \’xu ly chuoi\’ trong PHP
5, stripslashes( $str )
Hàm stripslashes có tác dụng ngược lại với addslashed, hàm này sẽ loại bỏ các ký tự \ trong chuỗi ký tự, thường được sử dụng để xử lý chuỗi trước khi hiển thị thông tin lên trình duyệt.
1 | $str = "Mot so ham \'xu ly chuoi\' trong PHP" ; |
2 | echo "<br />" . stripslashes ( $str ); |
Kết quả: Mot so ham ‘xu ly chuoi’ trong PHP
6, str_repeat( $str, $n )
Hàm str_repeate cho phép lặp lại chuỗi $str theo $n lần
Ví dụ:
1 | echo str_repeat ( ‘Hello’, 5 ); |
Kết quả: HelloHelloHelloHelloHello
7, str_replace( $chuoi_tim, $chuoi_thay_the, $chuoi_nguon )
str_replace cho phép tìm kiếm và thay thế trong chuỗi:
Ví dụ:
1 | $str = 'Ban dang tham gia khoa hoc PHP' ; |
2 | $str = str_replace ( 'PHP' , 'PHP co ban' , $str ); |
3 | echo $str ; |
Tìm tất cả các cụm tù PHP trong chuỗi $str và thay thế bằng PHP co ban
Kết quả: Ban dang tham gia khoa hoc PHP co ban
$chuoi_tim và $chuoi_thay_the có thể là 1 mảng dữ liệu
Ví dụ: Loại bỏ tất cả các ký tự !,@,#,$,% ra khỏi chuỗi
1 | $str = 'Scelerisque! porttitor@ #elementum% sed$ cum pellentesque' ; |
2 | $str = str_replace ( array ( '!' , '@' , '#' , '$' , '%' ) , '' , $str ); |
3 | echo $str ; |
Kết quả: Scelerisque porttitor elementum sed cum pellentesque
Ví dụ: Tìm và thay thế [b] bằng </b> và [/b] bằng <b>
1 | $str = str_replace ( array ( '[b]' , '[/b]' ), array ( '<b>' , '</b>' ) , $str ); |
2 | echo $str ; |
8, 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.
9, 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
Xem thêm về implode và explode trong bài: Các hàm xử lý mảng trong PHP
10, Các hàm mã hóa chuỗi
Trong php chúng ta có hai phương pháp mã hóa chuỗi thường sử dụng là md5 và sha1
- md5( $string ) : Mã hóa chuỗi dạng md5
- sha1( $ string) : Mã hóa chuỗi dạng sha1
11, Chuỗi và HTML
PHP cung cấp cho chúng ta một số hàm thao tác với các thẻ HTML
a, htmlentities( $ string)
Chuyển tất cả các ký tự có thể áp dụng cho các thẻ HTML như <, > sang dạng thực thể của chúng, các thẻ HTML sẽ không còn tác dụng. Thường được xử dụng trong việc xử lý dữ liệu từ người dùng nhập trước khi lưu vào database.
b, html_entity_decode( $ string)
Ngượ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.
Ví dụ về htmlentities và html_entity_decode
1 | $str = '<p>The p trong html</p>' ; |
2 | $str = htmlentities( $str ); |
3 | echo 'Entity: ' . $str . '<br>' ; |
4 | echo 'Decode' . html_entity_decode( $str ); |
Kết quả:
<Entity: <p>The p trong html</p>
Decode
Decode
The p trong html
c, 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ẻ <a> và <em>
1 | $str = strip_tags ( $str , '<a><em>' ); |
12, Các hàm tách chuỗi con (sub)
a, substr( $string, $start, $length ): tách chuỗi con từ một chuỗi
- start: Vị trí bắt đầu tách
- length: Chiều dài chuỗi cần tách
Ví dụ:
1 | $str = "Khoa hoc PHP" ; |
2 | $str = substr ( $str , 0, 8 ); |
3 | echo $str ; |
Kết quả: Khoa hoc
b, strstr( $string, $ky_tu_cho_truoc )
Tách ra một chuỗi con từ vị trí đầu tiên của chuỗi cho trước cho đến cuối chuỗi.
Ví dụ:
1 | echo strstr ( "Khoa hoc PHP co ban" , "PHP" ); |
Kết quả: PHP co ban
13 , strops( $str, $chuoi_tim )
Tìm vì trí xuất hiện đầu tiên của $chuoi_tim trong chuỗi $str.
Ví dụ:
1 | echo strpos ( "Khoa hoc PHP" , "PHP" ); |
Kết quả: 9
14, 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ừ.
15, Tìm kiếm chuỗi trong chuỗi.
1. Để tìm kiếm một chuỗi bên trong một chuỗi khác, bạn có thể sử dụng một trong ba hàm strstr(), strchr(), strrchar() hay stristr().Hàm strstr() trả về chuỗi str1 nếu chúng tìm thấy chuỗi str1 trong chuỗi str2, ngược lại hàm trả về giá trị false, nếu có nhiều chuỗi str1 giống nhau, hàm này chỉ tìm kiếm chuỗi str1 đầu tiên.
Cú pháp: string strstr(string str1, string str2);
Ví dụ minh họa về hàm tìm kiếm chuỗi:
<?php
$str="your customer service is excellent.";
echo strstr($str,"is")."<br>";
echo strchr($str,"c")."<br>";
echo strrchr($str,"e")."<br>";
echo stristr($str,"er")."<br>";
?>
2. Tìm vị trí của chuỗi con:
Để tìm kiếm một chuỗi bên trong một chuỗi khác, bạn có thể sử dụng một trong ba hàm strstr(), strchr(), strrchar() hay stristr(). Nhưng để tìm kiếm vị trí xuất hiện str1 trong chuỗi str2, bạn có thể sử dụng các hàm như: strpos(), strrpos(). Hàm strpos() trả về vị trí tìm thấy chuỗi str1 trong chuỗi str2, ngược lại hàm trả về giá trị -1. Nếu có nhiều chuỗi str1 giống nhau, hàm này chỉ trả về vị trí chuỗi str1 đầu tiên
Cú pháp: int strpos(string str1, string str2 [int off]);
Kí tự đầu tiên của chuỗi tính từ 0. Xem ví dụ:
<?
$str="your customer service is .";
echo $str."<br>";
echo "is:".strpos($str,"is")."<br>";
echo "e:".strrpos($str,"e")."<br>";
//Vị trí chuỗi e cuối cùng
?>
Đăng ký:
Bài đăng (Atom)