Tìm kiếm nhanh

[?] Xin sửa giúp biểu thức chính quy trong đoạn code em làm với (đang mày mò php)

Thảo luận trong 'Các Vấn Đề Khác' đăng bởi lumina430, 07/03/2017 10:33.

  • lumina430

    lumina430 Trần Long

    mấy anh cho em hỏi với đoạn code sau

    <li>
    <div class="block_image_news width_common">
    <h3 class="title_news"><a href="http://vnexpress.net/tin-tuc/giao-duc/bua-trua-giau-dinh-duong-cua-hoc-sinh-phap-3550846.html" class="txt_link"> Bữa trưa giàu dinh dưỡng của học sinh Pháp <span class="no_wrap"></span></a> <span class="icon_commend" data-href="http://vnexpress.net/tin-tuc/giao-duc/bua-trua-giau-dinh-duong-cua-hoc-sinh-phap-3550846.html#box_comment" style="white-space: nowrap; cursor: pointer; display: none;"><span class="txt_num_comment font_icon widget-comment-3550846-1">&nbsp;<i class="ic ic-comment ic-x ic-invert"><span>0</span></i></span></span></h3>
    <div class="thumb">
    <a href="http://vnexpress.net/tin-tuc/giao-duc/bua-trua-giau-dinh-duong-cua-hoc-sinh-phap-3550846.html"><img src="http://img.f31.vnecdn.net/2017/03/06/bua-trua-giau-dinh-duong-cua-h-5918-8258-1488773274_180x108.jpg" alt="Bữa trưa giàu dinh dưỡng của học sinh Pháp"> </a>
    </div>
    <div class="news_lead" data-mobile-href="http://vnexpress.net/tin-tuc/giao-duc/bua-trua-giau-dinh-duong-cua-hoc-sinh-phap-3550846.html">
    Khi đứa trẻ không thực sự thích ăn một loại thực phẩm nào đó, nhân viên nhà trường sẽ khuyến khích thử và bạn bè đồng thanh cổ vũ. Do vậy, những đứa trẻ ở Pháp sớm học được cách ăn uống lành mạnh.&nbsp; </div>
    <ul class="list_news_dot_3x3">
    </ul>
    </div>
    </li>

    1 - thì biểu thức chính quy là :

    #<li>(.*)</li>#imsU

    hay như thế nào vậy mấy anh? vì khi em cho biểu thức chính quy như vậy thì nó ra rất nhiều mảng. Nhưng khi em cho hàm:

    foreach ($matches[0] as $key => $value)

    thì nó chạy nhưng nếu

    $matches[62]

    thì nó lại ko chạy. Nó chỉ chạy được

    foreach ($matches[0] as $key => $value)

    foreach ($matches[1] as $key => $value)

    .

    2 - biểu thức chính quy của link ảnh, title và news_lead phải xây dựng thế nào mới đúng ạ? Em xây dựng xong thì nó cho ra mảng rỗng. Code của em đây:

    <?php
    $content =file_get_contents('http://vnexpress.net/tin-tuc/thoi-su');
    $pattern = '#<li>(.*)</li>#imsU';
    // pattern = '#<div class="block_image_news width_common">(.*)</div>\s*</div>#imsU';
    preg_match_all($pattern, $content, $matches);
    $result = array();
    foreach ($matches[0] as $key => $value){
    // LINK
    $pattern = '#href="(.*)"#imsU';
    preg_match($pattern, $value, $link);
    $result[$key]['link'] = $link[1];
    // IMAGE
    $pattern = '#src="(.*)">#imsU';
    preg_match($pattern, $value, $image);
    $result[$key]['image'] = $image[1];
    //TITLE
    $pattern = '#<h3 class="title_news" .*>(.*)<"#imsU';
    $pattern = '#<h3 class="title_news">(.*)<"#imsU';
    preg_match($pattern, $value, $title);
    $result[$key]['title'] = trim($title[1]);
    //DICREPTION
    $pattern = '#<div class="news_lead">(.*)</div>#imsU';
    preg_match($pattern, $value, $decription);
    $result[$key]['decription'] = trim($decription[1]);
    }
    echo "<pre>";
    print_r($result);
    echo "</pre>";

    Xin chỉ giúp em với.

     

     

     
  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Thường nếu parse HTML thì người ta ko dùng cách như bạn vì nó rất... tốn công.

    Bạn tìm hiểu HTML DOM ấy.

     

Chia sẻ trang này

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây