Monthly Archive for December, 2007

Get Alexa Rank

Sau mấy hôm làm mấy cái Get Yahoo Avatar, Get Domain, giờ đến thằng Alexa rank.

Thật ra mình muốn làm cái get rank này lâu lắm rồi, từ cái hồi xem cái kết quả này. Nhưng khi bắt tay vào thì gặp khó khăn 1 chút. Alexa “chơi khó” bằng cách sinh ra mấy cái thẻ . Cách này của Alexa hay phết, khi mình copy kết quả rank, paste nó lại ra số linh ta linh tinh. Giờ thì biết tại sao. Nhưng biết là 1 chuyện, làm được lại là 1 chuyện. Googled, thấy quá trời giải pháp. Trong đó có 1 chú cũng giải quyết theo cách của mình (bóc tách, dùng cURL). Nhưng (lại nhưng), Alexa nó có cho tra theo dạng xml thì tại sao lại không dùng nhỉ, bóc tách làm gì cho mệt cơ chứ. Vậy là theo hướng dùng XML

Okie, done!

Demo http://donamkhanh.com/lab/ajax/get_alexa_rank (Alexa chỉ tính rank cho domain chính thôi chứ ko tính cho từng subdomain đâu nha, bác nào nhập blog Yahoo hay Opera thấy rank cao đừng sướng nhá)

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Kiểm tra tên miền .vn (whois domain .vn code)

Việc kiếm 1 PHP whois class quả là rất dễ dàng nhưng để có thể check được các domain của Việt Nam (.vn) thì không phải dễ tìm cho lắm. Có 2 giải pháp để giải quyết bài toán này:

  1. Kiếm cho bằng được 1 whois server có chứa các info về domain .vn
  2. Thông qua 1 trang web khác

Giải pháp 1, các bạn cứ google tiếp.

Giải pháp 2 sẽ là cái mình sẽ trình bày trong entry này.

Để cho dễ hiểu, các bạn hãy nghĩ như thế này: trước tiên ta sẽ chọn website cần “làm thịt” (pavietnam.net, fpt.vn, matbao.net…). Tại sao lại chọn những site trong nước như vậy? Bởi đơn giản, chắc chắn nó whois được domain .vn

Tiếp theo, ta tạo 1 form để gửi dữ liệu về domain cần check ~~> gửi kết quả cho trang web kia ~~> nhận kết quả trả về ~~> bóc tách lại dữ liệu để chỉ lấy những thông tin ta cần hiển thị.

Okie, nói vậy chắc các bạn đã hiểu. Giờ thì chúng ta sẽ cụ thể hóa bằng code (mình sẽ trình bày ngắn gọn, các bạn muốn pro hơn thì có thể nâng cấp thêm: bắt lỗi, hiển thị…)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//mã hóa base64 - lừa gà lừa vịt tý cho bọn nó sợ :p
$server = "aHR0cDovL21hdGJhby5uZXQvd2hvaXMuYXNw";  
 
$find1    = 'PHAgY2xhc3M9d2hvaXM+';       //tương tự
$find2 = 'LS0gV2hvaXMgZnJvbQ==';          //như trên
 
//lấy nội dung website (kết quả trả về)
$source = file_get_contents(base64_decode($server)."?domain=".$_POST['txtDomain']);
 
$pos1 = stripos($source, base64_decode($find1));  //tìm chuỗi đánh dấu 1
$pos2 = stripos($source, base64_decode($find2));  //tìm chuỗi đánh dấu 2
 
if ($pos1 !== false && $pos2 !== false)
{
     echo '
<table border="0" cellspacing="0" cellpadding="0" width="500" align="center">
<tbody>
<tr>
<td>'.$strip1 = substr($source, $pos1, ($pos2-$pos1)).'</td>
</tr>
</tbody></table>
';
}
 
else
      echo 'Có lỗi xảy ra, xem lại thông tin nhập vào!';

Đoạn mã trên sẽ lấy toàn bộ nội dung website mà ta đă “tăm tia” trước đó. Sau bước này bạn phải xác định được chuỗi ký tự mà bạn định lấy làm điểm đánh dấu (tức là chỉ lấy nội dung hiển thị từ đoạn đấy tới đoạn thú 2 mà bạn chỉ định, tránh bê cả website của người ta về) và chuỗi ký tự đánh dấu kết thúc.

Cụ thể hơn, xét ví dụ sau: kết qủa trả về là anh Khánh hiền lắm các bé gái yêu anh ấy đi
giờ ta muốn chỉ muốn lấy “các bé gái“, ta sẽ có chuỗi tìm kiếm 1 là “anh Khánh hiền lắm” và chuỗi kết thúc là “yêu anh ấy đi

Thực hiện hàm stripos ta sẽ có đc vị trí xuất hiện của chuỗi ký tự nhận diện => cắt chuỗi từ vị trí đó đến vị trí thứ (vị trí 2 - vị trí 1) => kết quả.

Vậy có bạn sẽ hỏi, sao ko substr với 1 vị trí cố định đi. Làm vậy không được bởi đơn giản là vì với mỗi domain sẽ có kết quả whois khác nhau, tùy xem chủ sở hữu domain cho hiển thị cái gì ra.

Giờ các bạn có thể bắt tay vào làm rồi đấy. Chúc các bạn thành công ^^

Quên, link demo: http://donamkhanh.com/lab/ajax/whois.html

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Currency converter

If you want to convert from your currency to other currency or else, you can use this utility. It get result from Yahoo Finance (Ask value) so you can trust return value

Technology:

This code is free (GNU license) but if you make money by it, you can share to me, I don’t refuse money :p

For demo: http://donamkhanh.com/lab/ajax/currency_converter

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Get Yahoo avatar - “Lừa đảo”

Trước tiên vào link này: http://donamkhanh.com/lab/ajax/get_ym_avatar

Thử lấy avatar của 1 vài nick xem sao. Chính xác phải không nào? (nick nào không có avatar sẽ hiển thị ảnh mặc định - xấu mù)

Okie!

Giờ bạn vào link này: http://img.msg.yahoo.com/avatar.php?yids=karate_hn1984&format=gif

Thay yids=karate_hn1984 thành nick của bạn, điều gì xảy ra nhỉ :)

Okie!

Lại quay lại trang trước: http://donamkhanh.com/lab/ajax/get_ym_avatar

View source (Ctrl + U trong FF, Ctrl + F3 trong Opr) & xem mấy dòng comment :))

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]