Căn Bản PHP – Bài 11 – Phần 2
- October 18, 2010
- 32 comments
Có rất nhiều thủ thuật sử dụng đến Regular Expression hay gọi chính xác theo tiếng việt là Biểu Thức Chính Quy. Đôi lúc, bạn cũng thấy được rằng, người ta lọc các địa chỉ email của chúng ta và bắt nhập chính xác định dạng của email.
Như vậy, làm sao để bạn có thể sử dụng Regular Expression cho các ứng dụng của mình, lọc, kiểm tra, lấy dữ liệu. Bài học hôm nay chúng ta sẽ đi qua các khái niệm cơ bản của Expression.
Phần 2 này chú trọng vào các khái niệm và cách so sánh giống nhau của các dấu của Regular Expression. Bài tập của phần này, bạn chỉ cần tìm hiểu các dòng của Option để biết các ký hiệu của nó trong PHP được ký hiệu như thế nào.
1. Bài tập thực hành.
Hãy xem thông tin link sau đây. Và thực hiện bài tập như những gì bạn nhìn thấy
Bấm để xem ví dụ
2. Hướng dẫn
- Để hoàn thành tốt bài tập phần này, không ít bạn có thể sẽ bỡ ngỡ với Regular Expression và các hàm của PHP. Sau đây là một số hướng dẫn để có thể hoàn thành tốt bài tập :
file_get_contents() // Một trong những hàm có thể dùng để lấy nội dung
// Hãy thực hiện dữ liệu thông qua 1 Class và nhiều Function. Luôn viết function để thực hiện thao tác, tránh làm bằng tay quá nhiều.
//Hàm lọc chuẩn của một kiểu lọc dùng để tham khảo cách viết.
//get_page
class get_news {
function get_page(){
global $match;
$start = '<div class=\"folder-news\">';
$end = '<\/div>';
preg_match_all('/(?<='.$start.').*(?='.$end.')/msU',$this -> page_source,$match);
}
//Tiếp tục phát triển các hàm tiếp theo để lấy nội dung, tiêu đề, và các link trong bài viết của VN Express.
}
- Vui lòng gửi file của bạn về email : clackken.smith@gmail.com, tôi sẽ xem và chấm thử cho các bạn.
Cũng như với mọi tiêu chí tôi sẵn sàng nhận những ý kiến đóng góp về ý kiến cho Video để ngày càng hoàn thiện hơn.
Download: Mediafire
Thời lượng: 41:45
« Tạo Mailing list với PHP & MySQL
mọi ng cho hỏi mình muốn viết code này thì dùng phần mềm gì là tốt nhất nhỉ.:)
cái link ví dụ chết rồi anh ơi
Thank you for your article or a.
http://www.adela.vn/dich-vu/thiet-ke-to-roi-to-gap.html
Chào anh. Em có thắc mắc chút ở chỗ string pattern: ‘/(?<='.$start.').*(?='.$end.')/msU'. Biểu thức regular expression thì em hiểu, nhưng em không hiểu phần /msU này để làm gì? Em xem lại các biểu thức trong video session 11_2 thì không thấy anh giới thiệu gì về /msU này. Mong a giải thích giúp em với. Cảm ơn 2 anh!
Em hỏi thêm chút nữa là trong cái biểu thức chính quy để lọc nội dung, lúc lọc thẻ thì em viết (?<=<a).*(?=).
Còn bài của bạn llov3monk3y thì viết (?<=<a).*(?=) nhưng vẫn cho kết quả đúng?
Anh giải thích giúp với.
Tôi: (?<=<a).*(?=)
llov3monk3y: (?<=<a).*(?=)
E mới học đến bài 8 thui hihi^^ học cùng izwebz thì đúng là gần như ko cần tài liệu để học, e còn có thể làm quen vs joomla nhờ izwebz, bạn e bảo nên biết về joomla, e rất bỡ ngỡ với cái này. Có người hướng dẫn quả thực học hiệu quả hơn ^^ Cảm ơn anh Clackken.Smith
1. Bài tập thực hành. <<< bài ví dụ die rồi a ơi
Mình là Lợi,mình may mắn vì khi mới bắt đầu học thiết kế web gặp đươc izwebz.com,nó thật sự giúp mình cho việc học tập cho những chưa biết nhiều về lâp trình nói chung va PHP nói riêng.
Cảm ơn DW va CS rất nhiều!
bạn này cũng là Lợi à.
chúc bạn cùng tên học tốt nhé
công nhận bộ tut này của ông C.Smith quá đỉnh. bạn cứ theo dõi và học tập thì chắc chắn bạn sẽ hoàn thiện PHP lang của mình.
Bạn Hoàng Lợi ji đó ơi!
Mình mới bắt đầu học thiết kế web thui,bạn biết o sg có chỗ nào học lập trình PHP ok k?mình thì chưa biết ty nào về lập trình hết vì mình là tay ngang thui chứ k phải là dân cntt,nếu là học từ đầu thì minh phải như thế nào,mình có đọc bài này của anh DW rùi nhưng vẫn chưa rỏ lắm,bạn chỉ mình nha.thanks!
Ở sài gòn bạn đến trung tâm tin học của đại học khoa học tự nhiên đó, học chắc chắn dạy lý thuyết trên máy nên dễ học lắm bạn à, nếu bạn là sinh viên thì đc giảm học phí 20% đó. Cở khoảng 1tr300, mình cũng đang học ở đó nè
anh clacken.smith có thể làm video về các php frame work được ko anh?cám ơn izwebz
thx C.smith! wait for your next session.
Đây là bài làm đầu tiên được gửi vào email của tôi. Tuy chưa hoàn chỉnh lắm về cấu trúc OOP, nhưng với cấu trúc hàm, các hàm này đã làm việc khá hoàn chỉnh.
- Đây là link cho bài tập của bạn ấy : http://muagibando.com/laytin.php
<?php $page_source = file_get_contents("http://vnexpress.net/GL/Xa-hoi/"
;
$start = '<div class=\"folder-news\">';
$end = "<\/div>";
preg_match_all('/(?<='.$start.').*(?='.$end.')/msU',$page_source,$match);
// Lay ra het may the <a>
function theA($match){
$start = '<a';
$end = "<\/a>";
preg_match_all('/(?<='.$start.').*(?='.$end.')/msU',$match,$theA);
return $theA;
}
// Lay link cua bai viet
function linkBaiViet($theA){
preg_match('/(?<=href=").*(?=">)/',$theA[0][0],$linkBaiViet);
return $linkBaiViet[0];
}
function tenBaiViet($theA){
preg_match('/(?<=>).*(?=)/',$theA[0][1],$tenBaiViet);
return $tenBaiViet[0];
}
/**********************************************************************************/
function thoiGian($match){
$start = '<label class=\"item-time\">';
$end = '<\/label>';
preg_match('/(?<='.$start.').*(?='.$end.')/',$match,$thoiGian);
return $thoiGian[0];
}
function ngay($thoiGian){
$thoiGian = str_replace(" ","",$thoiGian);
$thoiGian = explode("|",$thoiGian);
return trim($thoiGian[1]," ");
}
function gio($thoiGian){
$thoiGian = str_replace(" ","",$thoiGian);
$thoiGian = str_replace('</label><label class="item-date">',"",$thoiGian);
$thoiGian = explode("|",$thoiGian);
return trim($thoiGian[0]," ");
}
/*************************************************************************/
function noiDung($match){
$start = '<p>';
$end = '<\/p>';
preg_match('/(?<='.$start.').*(?='.$end.')/',$match,$theP);
preg_match('/(?<=<a).*(?=<\a>)/',$theP[0],$lienKet);
$lienKet = $lienKet[0];
$content = str_replace($lienKet[0],"",$theP[0]);
return $content."<br />".$lienKet;
}
$i=0;
$vnExpress = array();
while($match[0][$i]!=null){
$tinTuc = array('Title' => tenBaiViet(theA($match[0][$i])),
'Link' => linkBaiViet(theA($match[0][$i])),
'Time' => gio(thoiGian($match[0][$i])),
'Date' => ngay(thoigian($match[0][$i])),
'Content' => noiDung($match[0][$i])
);
if($tinTuc['Title']!=null){
$vnExpress[$i] = $tinTuc;
}
$i++;
}
echo '<pre>';
print_r($vnExpress);
echo '</pre>';
?>
Cùng nhau vỗ tay hoan hô bạn có tên : llov3monk3y. Tôi sẽ định dạng lại các hàm này trở thành một OOP để mọi người có thể dễ dàng trực quan hơn. Tôi cố tình kéo dài thời gian cho bài này, nhưng cho đến nay chỉ có 1 người thử làm nó mà thôi.
Cùng cố gắng đưa ra code của mình, để cùng nhau thấy sai, để cùng nhau sửa nào. Tôi muốn hoàn hỉnh code này dựa vào những hàm mà bạn đã viết.
Anh ơi! Em cảm ơn anh nhiều nhé!
Anh có thể có một video tạo một trang đăng kí hoàn chỉnh đúng chuẫn của nó được không, trang đó bắt tất cả các lỗi mà người dùng nhập không đúng chuẫn rồi thông báo lỗi lên phía trên mỗi type(text,password). Anh cố gắng nha!\
Cảm ơn anh, cảm ơn izwebz.com
em đang cố lấy mẩu tin…em thấy bài này rất hay…nếu được em thấy anh nên viết 1 video về bài này..:)
Cảm ơn A CSmith nhiều ..
Chúc Izwebz phát triển .tất cả đóng góp cho Izwebz
Các anh ơi cho em tham gia với. Em muốn học lập trình web bằng PHP nhưng hoc không được, được biết trang web của các anh có các video dạy về PHP rất hay, em muốn tham gia học cùng. chủ yếu là học hỏi thôi chứ em cũng chưa biết nhiều về PHP. anh có thể gửi cho em it tài liệu tự học về php đến mail cho em được không ạ, để em có thể bắt đầu học. Em cám ơn các anh trước nha. hihi
mail của em là: levanuneti@gmail.com
Em có thể bắt đầu từ bài 1 mà không cần một tài liệu nào về PHP cả. Tài liệu duy nhất em nên đọc là kỹ năng lập trình. Em hãy tìm kiếm trên mạng, anh nghĩ có rất nhiều. Welcome em
rat cam on ! minh doi cai ban 11 path 2 nay da 1 thang roi`
hom nay moi thay dug la ko con gi de noi ngoai 2 tu cam on
Cảm ơn tác giả của trang web này, cảm ơn anh CS về serie PHP.
Chúc website ngày càng phát triển. Chúc các anh mọi đều tốt lành!
cám ơn các anh đã post video, các anh thật nhiệt tình. Mong là sẽ có thêm nhiều TUT hay mà các anh sẽ chia sẻ cho các anh em học hỏi. Thanks các anh rất nhiều!
Cảm ơn tác giả nhé! Bài viết công phu lắm! Tiếp tục nhé bạn!
Rất cảm ơn
vê vấn đề chia sẻ kiến thức .mấy ông sống nước ngoài có vẻ rất nhiệt tình ,không dấu nghề ! thank much !
Các bác cho em nếu hỏi nếu mấy video ở izwebz mà xuất ở dạng *.swf thì dung lượng có nhỏ hơn không, chứa mấy file mp4 hay avi dung lượng vừa lớn download xuống cũng mệt, mà người upload lên không biết có mệt không.
Thank anh một phát để lấy tinh thần ^ ^
Em chờ mãi anh uj, bi giờ mới có, thank anh rất rất nhiều!
yeh! em đợi phần 2 lâu lắm rồi…cảm ơn anh.
Cảm ơn anh về bài viết bổ ích này