• fans
  • 1036 reader
  • followers
Có 18 bài viết trong series PHP căn bảnHiển thị

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

Clackken Smith Website facebook twitter user_email

Bản thân tôi là một người Việt Nam, có lai Tây, Tàu gì không thì chưa biết, cứ tinh thần là Việt Nam cái đã, nơi ở thì vẫn ở Việt Nam, chưa có cơ hội đi tới biên giới nữa nói gì nước ngoài ^^. Hiện tại đang làm việc và sống ở TP. Hồ Chí Minh. Bản thân ngày xưa chẳng đụng chạm gì lập trình, chỉ là tò mò rồi nhìn ngó người ta cài đặt máy móc rồi học theo mà thôi.

  • http://www.quayphim.trongkiem.com Quay phim sự kiện

    Rất cảm ơn. Có PHP nâng cao luôn ko bác

  • T.Thứ

    Hai anh ơi! Cho em hỏi chưa có bài 12 hả anh?

  • phphieu

    Thank anh , bài học rất bổ ích :)

  • harrycuong

    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ỉ.:)

  • nightbaron

    cái link ví dụ chết rồi anh ơi

  • http://www.adela.vn Adela promotion
  • King

    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!

    • King

      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.

      • King

        Tôi: (?<=<a).*(?=)
        llov3monk3y: (?<=<a).*(?=)

  • TzonGreen

    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

  • http://www.matbaoad.com Hoàng Trọng

    1. Bài tập thực hành. <<< bài ví dụ die rồi a ơi

    • ThanhLoi

      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!

      • http://hoangloi.info Hoang Loi

        bạn này cũng là Lợi à.
        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. :D chúc bạn cùng tên học tốt nhé

        • Thanh Loi

          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!

          • Mrsku

            Ở 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è

  • mabu

    anh clacken.smith có thể làm video về các php frame work được ko anh?cám ơn izwebz

  • longlh

    thx C.smith! wait for your next session.

  • http://bearsharks.com Clackken Smith

    Đâ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>'; 
            
     ?>
    
    • http://bearsharks.com Clackken Smith

      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.

  • lds_tny

    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

  • vietpnk53

    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..:)

  • CanIuG

    Cảm ơn A CSmith nhiều ..
    Chúc Izwebz phát triển .tất cả đóng góp cho Izwebz

  • Lê Thị Vân

    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

    • http://bearsharks.com Clackken Smith

      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

  • qthien

    rat cam on ! minh doi cai ban 11 path 2 nay da 1 thang roi` :D hom nay moi thay dug la ko con gi de noi ngoai 2 tu cam on

  • grace

    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!

  • heonai

    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!

  • zazuzau

    Cảm ơn tác giả nhé! Bài viết công phu lắm! Tiếp tục nhé bạn! :D

  • Minh Đức

    Rất cảm ơn

  • http://www.cattuongpc.com.vn/ kaks

    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 !

  • balatumka

    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.

  • Mưa tháng 7

    Thank anh một phát để lấy tinh thần ^ ^

  • Kim Danh

    Em chờ mãi anh uj, bi giờ mới có, thank anh rất rất nhiều!

  • vietpn

    yeh! em đợi phần 2 lâu lắm rồi…cảm ơn anh.

  • _NVS_

    Cảm ơn anh về bài viết bổ ích này

Newbie

Các series nên xem trên izwebz cho newbie

Khi vào izwebz chắc nhiều bạn cho rằng các bài viết trên izwebz đều không có hệ thống gì cả? Thực chất, các bài biết đều đi theo một series của riêng nó, ví dụ như PHP, HTML & CSS, PSD2HTML, Photoshop, illustrator,… Trong bài viết này, mình sẽ tổng hợp lại các series bài viết cần thiết cho một newbie.

Izwebz facebook group

Social connect

Recent Comments

Archives