XtGem Forum catalog
logo

Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Home · Bang hội ·
* Đăng Nhập hoặc Đăng Kí
để sử dụng hết chức năng của diễn đàn.
Hi, Khách!
HomeBang hội » Wapmaster » PHP » » Xem bài viết
Xuống dưới »
avatar by Pham_loi Pham_loi
Chức vụ:
23:10:28, 21-02-2016

Phần 3: Tạo form nhập link để get
Phần này mình nghĩ là khá ngắn nên sẽ nói thêm vài cái khác nữa.
như các bạn đã biết hoặc một số chưa rõ thì html tương tác với php qua form, đây là kiến thức cơ bản khi làm việc với php và html. muốn gửi dữ liệu từ form vào cho php xử lí ta có 2 phương thức là post và get, nó như thế nào các bạn có thể google để tìm thêm thông tin, ở đây mình sẽ làm theo phương thức get, và cả sau này ta cũng sẽ sử dụng phương thức này.
rất đơn giản thôi ạ, bạn tao 1 form với 1 ô nhập link và nút submit, thuộc tính name của thẻ input nhập link mình đặt là link.
<form method="get">
Nhập link: <input name="link">
<input type="submit">
</form>

Copy code

trên đây là phần html, đến phần php ta sẽ dùng biến môi trường $_GET để lấy giá trị gửi lên từ form, lưu ý vì method trong form là get nên ta sẽ dùng $_GET. còn nếu method là post thì ta dùng $_POST.
<form method="get">
Nhập link: <input name="link">
<input type="submit">
</form>
<?
if (isset ($_GET['link'))
{
$link = $_GET['link';

//code ở đây

}

Copy code

ở đây ta có sử dụng hàm isset() để kiểm tra xem $_GET['link' có giá trị hay chưa, nếu có r thì ta làm tiếp không thì không làm gì, còn làm gì tiếp thì ta sẽ quan tâm sau.
vậy để dễ hình dung bạn hãy lưu code sau thành 1 file .php và chạy thử coi như thế nào nhé.
<form method="get">
Nhập link: <input name="link">
<input type="submit">
</form>
<?
if (isset ($_GET['link'))
{
$link = $_GET['link';

echo $link;

}

Copy code

ở phần 2 ta đã có được code lấy nội dung có phân trang, code nó như này
function  lay_noi_dung ($html)
{
  preg_match ('#<big>(.+?)</big>#s',$html,$noidung);
  return $noidung[1;
}
function lay_tong_so_trang($html)
{
  preg_match_all('#<a class="pagenav"(.+?)>(.+?)</a>#',$html,$tongsotrang);
return max($tongsotrang[2);
}
$url = 'http://topkute.net/forum/truyen-teen-buoc-ve-phia-em-full_8444.html';
$html = file_get_contents ($url);
$tongsotrang = lay_tong_so_trang ($html);
for ($i=1;$i<=$tongsotrang;$i++)
{
  $link = 'http://topkute.net/forum/truyen-teen-buoc-ve-phia-em-full_8444_trang-' . $i . '.html';
  $htm = file_get_contents ($link);
  echo lay_noi_dung ($htm);
}

Copy code

để ứng dụng những cái nói nãy giờ ở trên và code kia ta sẽ chỉ quan tâm đến cái $url trong code trên thôi, thay vì ở phần 2 ta sẽ phải sửa $url mỗi khi muốn grab 1 trang khác thì bây giờ chỉ việc nhập link vào form nhấn nút thì ta sẽ cho $url = $_GET['link' là coi như giải quyết xong :D. còn cái nhỏ này nữa, chú ý dòng này $link = 'http://topkute.net/forum/truyen-teen-buoc-ve-phia-em-full_8444_trang-' . $i . '.html';
ta sẽ để ý các link đều kết thúc bằng .html và số page nó nằm sát .html ấy đồng thời có cấu trúc cố định là ......_id_trang-số trang.html, ta dùng preg_replace để xử lí cái đuôi cho nó chuẩn là dc thôi mà.
vậy code hoàn chỉnh như sau
<form method="get">
Nhập link: <input name="link">
<input type="submit">
</form>
<?

if (isset ($_GET['link'))
{
$url = $_GET['link';

function  lay_noi_dung ($html)
{
  preg_match ('#<big>(.+?)</big>#s',$html,$noidung);
  return $noidung[1;
}
function lay_tong_so_trang($html)
{
  preg_match_all('#<a class="pagenav"(.+?)>(.+?)</a>#',$html,$tongsotrang);
return max($tongsotrang[2);
}
$html = file_get_contents ($url);
$tongsotrang = lay_tong_so_trang ($html);
for ($i=1;$i<=$tongsotrang;$i++)
{
  $link = preg_replace('#.html$#','_trang-' . $i . '.html',$url);
  $htm = file_get_contents ($link);
  echo lay_noi_dung ($htm);
}


}

Copy code

Like: 0

Trực Tuyến: Khách: 1
Diễn đàn teen Việt Nam
CopyRight 2014