Dạy thiết kế web - Hướng dẫn thiết kế web, Kỹ thuật thiết kế website

Ứng dụng sockets với php

Xem kết quả: / 0
Bình thườngTuyệt vời 


function căn bản để mở kết nối đến server là fsocken(). Có thể bạn sẽ thấy ngạc nhiên tại sao bạn lại muốn kết nối đến server khác. Nếu bạn cần thêm thông tin về 3rd party server thì sockets là cái cho bạn cần.
Tutorial này hướng dẫn chúng ta các phương thức sau đây :
# Connect To A Server Using Sockets
# Disconnect From a Server%br%
# Send a request to a server%br%
# List the number of lines returned by the server on a request%br%
# Use sockets in a practical project like a whois look-up script

Kết nối qua sử dụng sockets với PHP
Nếu bạn có ý nghĩ nối kết với internet server khác với php rất rắc rối , có lẽ bạn hơi lầm. Bạn chỉ cần nối mạng bằng một dòng code của php. trong phần này sẽ giải thích cách nối và ngắt nối mạng qua sử dụng sockets.

Code:

<?php
/*
Tham số mà fsockopen cần là:
fsockopen(IP/Hostname, cổng (port), Lỗi ($errno), miêu tả lỗi phát hiện($errdesc)
*/
$fp fsockopen"www.phpvn.org"80$errno
,
$errdesc
);
?>

Bạn đã thiết lập một kết nối đến server vd: phpvn.org. Bạn cũng nên làm quen với function fclose() để ngắt nối mạng.

<?php
$fp 
fsockopen"www.phpvn.org"80$errno
,
$errdesc); 
//establish connection
fclose($fp); 
//close connection
?>


Gởi một Request

Trong phần kế tiếp này bạn sẽ làm quen với cách gởi một request đến server và cho thể hiện một danh sách mà server gởi trả lại cho bạn cũng như cách làm việc của nó. Việc trước tiên cần làm là mở một kết nối đến server với một tên biến $fp, có nghĩa bạn đã gởi một $fp và nhận được một kết quả trả về từ server mà bạn đã gởi đến.
Code:

<?php
/*
Kết nối đến server vd: www. example.com
*/
$host "www.example.com"
;
$page "/index.html"
;
$fp fsockopen($host80$errno$errdesc
) or
die(
"Connection to $host failed"
);
/*
Chúng ta xác định thông tin của header để gởi đến cho server
GET, được hiểu chúng ta muốn nhận được thông tin hay trang web từ server đó
Bạn cũng có thể sử dụng POST để làm việc này.
*/
$request "GET $page HTTP/1.0&#38;#92;r&#38;#92;n"
;
$request .= "Host: $host&#38;#92;r&#38;#92;n"
;
$request .= "Referer: $host&#38;#92;r&#38;#92;n"
;
/*
Sử dụng function fput() gởi đòi hỏi(request)  đến server  và tạo một vòng lập (loop)
lấy kết quả được từ mãng, được gọi là $page
*/
fputs($fp$request
);
while(!
feof($fp
)){
$page[] = fgets($fp1024
);
}
/*
Đóng mạng đồng thời lấy tổng số trang nhận được
*/
fclose($fp
);
echo 
"The server returned ".(count($page
)).
" Lines"
;
/*
Tạo vòng lập (for) và in dữ liệu.
*/
for($i=0$i&lt;count($page); $i
++){
echo 
$page[$i
];
}
?>


Tìm kiếm (Searching for a page)
Trong phần này chúng ta sử dụng fsockenopen() để kể nối đến nhiều server và kiểm soát một trang nào đó trong server.
Code:

<?php
$servers 
= array(
               
"www.example.com" =&gt"/index.html"
,
               
"www.example2.com" =&gt
"/index.php"
);
/*
Tạo vòng lập cho server array và kết nối đên mạng,
Báo lỗi nếu không kết nối được
*/
foreach($servers as $host=&gt$page
){
$fp fsockopen($host,80,$errno,$errdesc,10
);
echo 
"Trying $host&lt;br&gt;&#38;#92;n"
;
if(!
$fp
){
echo(
"couldnt connect to $host"
);
echo 
"&lt;br&gt;&lt;hr&gt;&lt;br&gt;&#38;#92;n"
;
continue;
}
/*
Xác định thông tin, và gởi request đến server
*/
echo "trying to get $page&lt;br&gt;&#38;#92;n"
;
$request "HEAD $page HTTP/1.0&#38;#92;r&#38;#92;n&#38;#92;r&#38;#92;n"
;
fputs($fp$request
);
echo 
fgets($fp1024
);
echo 
"&lt;br&gt;&lt;br&gt;&lt;br&gt;&#38;#92;n"
;
/*
Đóng mạng
*/
fclose($fp
);

}
?>


Dòng code trên được diễn như sau:
Trying:
www.example.com
Trying to get: /index.html
HTTP/1.1 200 OK

Nó chỉ hiện những trang đã tìm được, nếu không sẽ thay thế trang 404 bằng mã số 200.

ứng dụng Whois

Bạn đã biết qua ứng dụng kết nối đến một server, tạo vòng lập để in kết quả và cách đóng mạng. chúng ta thực hành thêm một vài thao tác cho ứng dụng whois.

Code:

<?php
extract
($_POST
); 
function 
whois($domain,$ext
){ 
$url=$domain.$ext

/*
sử dụng switch() để xác định whois server nào là server thích hợp
nhất để kết nối domain
*/
switch($ext
){ 
case 
".co.uk"

$whois "whois.nic.uk"

break; 
case 
".com"

$whois "whois.networksolutions.com"

break; 
case 
".fr"

$whois "whois.nic.fr"

break; 
case 
".biz"

$whois "whois.biz"

break; 
default: 
$whois "whois.networksolutions.com"


if (
trim($url) &lt;&gt""
) { 
  
$url trim($url
);
/*
kết nối đến server
*/ 
$f fsockopen($whois43$errno$errstr30
); 
  if (!
$f
) { 
     echo 
"Connection To Server Failed ($errno)"

  } else {
/*
Gởi domain đến một server và chờ nhận kết quả
*/ 
     
fputs($f"$url&#38;#92;r&#38;#92;n"
); 
     print 
"&lt;pre&gt;&#38;#92;r&#38;#92;n"

   while (!
feof($f
)) { 
        echo 
fread($f,128
); 
     } 
    print 
"&lt;/pre&gt;"
;
/*
Đóng mạng
*/ 
     
fclose($f
); 
  } 
}else{ 
echo 
"Invalid domain entered"


}
?>

 Nguồn http://thegioiweb.vn/Story/vn/laptrinhweb/laptrinhweb_PHP/2008/6/5761.html
 

Khắc phục lỗi

Công cụ thiết kế website

Top 10 Add-on “hot” cho Firefox Top 10 Add-on “hot” cho Firefox Firefox vẫn nổi tiếng với hệ ...
Tool upload và download từ server Tool upload và download từ server FTP Commander 7.40 - chương trình ...
Một số trang web cung cấp tool online Một số trang web cung cấp tool online 1. Web 2.0 Badges – Tạo badges ...
Tool hỗ trợ làm flash mạnh mẽ nhất Tool hỗ trợ làm flash mạnh mẽ nhất Với SWiSH Max2 bạn có thể ...
Firebug -kiểm tra website Firebug -kiểm tra website Firebug là một công cụ chủ ...

Ebook

Ebooks Flash CS3 (english) Foundation Flash CS3 for Designers What you’ll ...
24h học Action scipts Dưới đây là tài liệu dùng để học action ...
Ebook học JavaScript Ebook học JavaScript bao gồm cả Tiếng Anh và ...
Ebook web nghe nhạc trực tuyến Bạn đang có ý định làm một website nghe ...
Tài liệu tiếng việt về PHP Biên soạn bởi: Mr. Cảnh Phúc Hiệu trưởng ...

Tin tức

Những tên miền Những tên miền "nguy hiểm nhất thế giới" Đó là những tên miền quốc gia Cameroon (.cm), ...
Tạo website trực tuyến, chuyên nghiệp, miễn phí Tạo website trực tuyến, chuyên nghiệp, miễn phí Nhằm phục vụ cho nhu cầu học tập, trao đổi, ...
Thiết kế Website và Làm thế nào để có 1 website ? Thiết kế Website và Làm thế nào để có 1 website ? Để có một website bạn phải tiến hành những ...
Các loại website Các loại website Có rất nhiều loại website nhưng có thể phân ...
Domain là gì ? Domain là gì ? Tên miền (Domain name) là định danh của website ...

Thăm dò

Bạn quan tâm về website ở điểm nào ?