php fsockopen 可以 post json資料嗎? 知道的請留下代碼,在此謝過!
回複內容:
php fsockopen 可以 post json資料嗎? 知道的請留下代碼,在此謝過!
因為不清楚你所說的 json
資料具體是想要怎麼提交, 故分以下兩種情況做為展示.
第一種情況: 提交的整個資料就是JSON
格式的內容.
1.php
'hello', 'b'=>'world', 'c'=>'漢字');$data = json_encode($post_fields);//轉換為JSON格式的字串$data = array( 'POST /123.php HTTP/1.0',//請求的地址 'Host: localhost', 'Content-type: application/x-www-form-urlencoded', 'Content-length: '. strlen($data),//填充資料長度 '',//要求標頭與資料的分隔字元 $data//填充資料體);//注意修改 網域名稱和連接埠號碼$sock = fsockopen("localhost", 800, $errno, $errstr, 30);if (!$sock) die("$errstr ($errno) ");fwrite($sock, implode("\r\n", $data));$data = '';while(!feof($sock)){//測試檔案指標是否到了檔案結束的位置 $data .= fgets($sock,1024);}fclose($sock);echo $data;
與之對應的123.php
檔案的代碼如下:
代碼執行後的結果如下:
HTTP/1.1 200 OKDate: Mon, 21 Sep 2015 06:34:12 GMTServer: Apache/2.4.12 (Win32) PHP/5.6.9X-Powered-By: PHP/5.6.9Content-Length: 118Connection: closeContent-Type: text/html; charset=UTF-8object(stdClass)#1 (3) { ["a"]=> string(5) "hello" ["b"]=> string(5) "world" ["c"]=> string(6) "漢字"}
第二種情況: JSON
格式的資料做為 資料 進行提交.
在上面代碼的基礎上做如下改動:
1.php
$data = 'xyz=' . json_encode($post_fields);//轉換為JSON格式的字串
123.php
執行結果與之前的一樣.