php下POST报文到主机 ,post提交利用代码
<?
-
** โพสต์报文到主机
-
ฟังก์ชั่น PostToHost($url, $data) {
$url = parse_url($url);
if (!$url) return "ไม่สามารถแยกวิเคราะห์ url";
if (!isset($url['port'])) { $url['port'] = ""; -
if (!isset($url['query'])) { $url['query'] = ""; }
$เข้ารหัส = "";
ในขณะที่ (รายการ($k,$v) = แต่ละรายการ($data)) {
$เข้ารหัส .= ($เข้ารหัส ? "&" : "");
$เข้ารหัส .= rawurlencode($k)."=".rawurlencode($v);
-
$พอร์ต = $url['พอร์ต'] ? $url['พอร์ต'] : 80;
$fp = fsockopen($url['host'], $port, $errno, $errstr);
ถ้า (!$fp) ส่งคืน "ไม่สามารถเปิดซ็อกเก็ตไปที่ $url[host] $port ข้อผิดพลาด: $errno - $errstr";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['แบบสอบถาม']));
fputs($fp, "โฮสต์: $url[host]\n");
fputs($fp, "ประเภทเนื้อหา: application/x-www-form-urlencoded\n");
fputs($fp, "ความยาวเนื้อหา: " . strlen($encoded) . " \n ");
fputs($fp, "การเชื่อมต่อ: ปิด\n\n");
fputs($fp, "$เข้ารหัส\n");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\.. 200", $line)) กลับ;
$ผลลัพธ์ = ""; $ในส่วนหัว = 1;
ในขณะที่(!feof($fp)) {
$line = fgets($fp,1024);
ถ้า ($inheader && ($line == " \n " || $line == " \r\n ")) {
$ในส่วนหัว = 0;
-
elseif (!$inheader) {
$ผลลัพธ์ .= $เส้น;
-
-
fclose($fp);
ส่งกลับผลลัพธ์ $;
}/* สิ้นสุดฟังก์ชัน PostToHost */
-