Diễn đàn
Chủ đề này đã bị khóa, bạn không thể sửa hay trả lời
Tác giả Nội dung
thanhcong
Gửi: 25/04/05 15:52    POST HTTP - helpppppppppp



Nhóm: Thành viên má»›i
Tham gia: 25/04/05
Bài gửi: 2/2
Nơi ở: Pháp

mình biết đến trang web này qua NNB, trong đó bạn Hải Nam có post bài sự thật quỹ tiết kiệm của TTVNOL. Thấy bạn có giải đáp các vấn đề tin học, mình cũng có một câu về PHP, mong Hải Nam hướng dẫn


1/ Mình vào trang http://translate.dictionary.com ( đây là trang dịch thuật )


Khi view source, có những dòng đáng chú ý như sau :

Mã HTML
<FORM ACTION="http://translator.dictionary.com/fcgi/translate" METHOD=POST NAME="trans_form" ONSUBMIT="return transcheck();">
<TEXTAREA NAME="text" ROWS="8" COLS="80" WRAP="Physical"></TEXTAREA>
<SELECT NAME="lp" SIZE="1" STYLE="font-size:110%; font-family: arial, helvetica, sans-serif;">
<OPTION VALUE="en_es"> English to Spanish
<OPTION VALUE="en_fr"> English to French

Mình định dùng PHP để lấy thông tin làm một cái từ điển nhỏ trên trang web của mình. Đầu tiên mình thử :


http://translator.dictionary.com/fc...=hello&lp=en_fr


Theo bình thường, thì khi đánh link này vào, trang dictionary sẽ trả lại dòng hello đã được dịch thành tiếng Pháp, nhÆ°ng nó lại trả về chính trang đó, chÆ°a dịch chÆ°a làm gì hết   theo bạn thì mình đã thiếu gì trong cái link trên ??


2/ Mình định dùng post_http thông qua proxy.

VD mình có má»™t danh sách các từ tiếng anh, muốn nó dịch sang tiếng Pháp, mình sẽ dùng vòng lặp trong PHP đọc file data, cho nó dịch, rồi ghi vào má»™t file khác . NhÆ°ng nếu số lượng từ trong danh sách quá lá»›n ( vd hÆ¡n 100k từ ) thì trang web dictionary nó sẽ khủng hoảng và chặn IP server mình chạy file PHP này   Nên mình nghÄ© nếu có thể dùng proxy đựợc thì hay, tức là mình sẽ nạp thêm trong file PHP của mình má»™t danh sách proxy, cứ má»—i má»™t từ thì server của mình sẽ tá»± Ä‘á»™ng connect qua má»™t proxy, tra từ đó rồi nhả kết quả cho mình.


Bạn có cách nào để làm như thế ko ??

Xem lý lịch thành viên
Hải Nam
Gửi: 26/04/05 00:13   

Cán bộ cao cấp


Nhóm: Webmaster
Tham gia: 08/05/04
Bài gửi: 833/1485
Nơi ở: Brest, Pháp

Ặc ặc, tự nhiên quỹ tiết kiệm TTVNOL với NNB (Những Người Bạn ?) ở đâu ra vậy Giờ giải đáp 2 câu hỏi.

1. Cái form đầu tiên ở trang chính hoàn toàn có thể dùng thẳng URL để tra từ. Thí dụ http://dictionary.reference.com/search?q=house

Tuy nhiên cái form ở http://dictionary.reference.com/translate/text.html dùng phương thức POST (chứ không phải GET). Để gửi một form bằng phương thức GET, bạn cần dùng các hàm kết nối trực tiếp (như fsockopen() hoặc thư viện curl của PHP), cái này bạn tự tìm hoặc đọc các bài cũ, hoặc tiếp tục với câu 2.

2. Với 2 cách trên, cách dùng fsockopen để kết nối đến proxy, sau đó có thể gửi lệnh GET/POST để lấy thông tin bình thường (vì một khi đã kết nối đến máy chủ, bạn vẫn phải ghi Host, nên có thể gửi thông tin đến host khác). Còn dùng curl thì xem thử nó có option về proxy hay không (hình như có).

--
Mà nói vậy: "Trái tim anh đó
Rất chân thật chia ba phần tươi đỏ:
Anh dành riêng cho Đảng phần nhiều
Phần cho thơ, và phần để em yêu..."
Xem lý lịch thành viên Website của thành viên này
thanhcong
Gửi: 26/04/05 03:43   



Nhóm: Thành viên má»›i
Tham gia: 25/04/05
Bài gửi: 2/2
Nơi ở: Pháp

<?php

$proxy = "210.255.58.62";

$port = "80";

$host = 'ex.net';

$path = 'book.php';

$url = 'http://'.$host.$path;

$data_to_send = $data;



$fp = fsockopen($proxy, $port, $errno, $errstr, 2);

stream_set_timeout($fp, 2);


if (!$fp) {

echo "Proxy tieu roi\n";


}

else {

fputs($fp, "POST $path HTTP/1.1\r\n");

fputs($fp, "Host: $host\r\n");

fputs($fp, "Referer: ".$url."\r\n");

fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");

fputs($fp, "Content-length: ".strlen($data_to_send)."\r\n");

fputs($fp, "Connection: close\r\n\r\n");

fputs($fp, $data_to_send);



fclose($fp);


}

?>


Bạn HN coi lại dùm mình cái code xem có vấn đề gì ko nhé

Thx

Được sửa chữa bởi thanhcong ngày 26/04/05 05:29 (sửa lần 1)
Xem lý lịch thành viên
Hải Nam
Gửi: 26/04/05 04:40    RE: POST HTTP - helpppppppppp

Cán bộ cao cấp


Nhóm: Webmaster
Tham gia: 08/05/04
Bài gửi: 833/1485
Nơi ở: Brest, Pháp

Câu 2 thì đã có trả lời khá nhiều ở câu 1 rồi.

YM có trong lí lịch, còn để hỏi trực tiếp qua YM thì...

--
Mà nói vậy: "Trái tim anh đó
Rất chân thật chia ba phần tươi đỏ:
Anh dành riêng cho Đảng phần nhiều
Phần cho thơ, và phần để em yêu..."
Xem lý lịch thành viên Website của thành viên này
Xem bài trướcPHPXem bài kế
Chủ đề này đã bị khóa, bạn không thể sửa hay trả lời 

Bạn không có quyền gửi bài viết
Bạn không có quyền trả lời bài viết