對(duì)于json,PHP有對(duì)應(yīng)的方法進(jìn)行操作。
10余年的臨漳網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷(xiāo)型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整臨漳建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“臨漳網(wǎng)站設(shè)計(jì)”,“臨漳網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
一般而言,json會(huì)以字符串形式傳給PHP腳本,一般都是放在$_POST里面,
14
?php
// 接收
$json_parameter = $_POST['json_str'];
// 處理, 變成數(shù)組
$array = json_decode($json_parameter);
// PHP 把數(shù)組數(shù)據(jù)變成json格式字符串,發(fā)給頁(yè)面
$demo = array(
'key' = 'value',
'key2' = 'value2'
);
$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}
echo $demo_json;
姓: input type=text name=first_name size=25 maxlength=25
名: input type=text name=last_name size=25 maxlength=25 p input type=submit /form /body /html當(dāng)你輸入數(shù)據(jù),并按下 submit 按鈕后,這個(gè)表單將把數(shù)據(jù)發(fā)送到 submitform.php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言)3 。再由這個(gè) php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言) 腳本來(lái)處理收到的數(shù)據(jù),下面就是 submitform.php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言)3 的代碼: html body ?php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言)
MySQL(和PHP搭配之最佳組合)_connect (localhost, username, password);
MySQL(和PHP搭配之最佳組合)_select_db (dbname);
MySQL(和PHP搭配之最佳組合)_query ("INSERT INTO tablename (first_name, last_name)
VALUES ($first_name, $last_name)");print ($first_name);
print (" ");
print ($last_name);
print (" p");
當(dāng)你按下 submit 之后,可以看到你輸入的名字被顯示在一個(gè)新的頁(yè)面中。再看一看瀏覽器的URL 欄,它的內(nèi)容應(yīng)該是像這樣的:
… /submitform.php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言)3?first_name=Fredlast_name=Flintstone
因?yàn)槲覀冇玫降氖潜韱?GET 方法,因此數(shù)據(jù)是通過(guò) URL 來(lái)傳送到 submitform.php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言)3的。顯然, GET 方法是有局限性的,當(dāng)要傳遞的內(nèi)容很多時(shí),就不能用 GET 了,只能用 POST 方法。但不管用什么方法,當(dāng)數(shù)據(jù)傳送完成后, php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言) 自動(dòng)的為每一個(gè)表單中的字段建立一個(gè)和他們的名字(表單的 name 屬性)相同的變量。
php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言) 變量都已用一個(gè)美元符號(hào)開(kāi)頭的,這樣,在 submitform.php(做為現(xiàn)在的主流開(kāi)發(fā)語(yǔ)言)3 腳本處理的過(guò)程中,就會(huì)有 $first_name 和 $last_name 這兩個(gè)變量了,變量的內(nèi)容就是你輸入的內(nèi)容。
我們來(lái)檢查一下你輸入的名字是否真的被輸入到數(shù)據(jù)庫(kù)中了。啟動(dòng) MySQL(和PHP搭配之最佳組合),在 MySQL(和PHP搭配之最佳組合) 提示符下輸入:
MySQL(和PHP搭配之最佳組合) select * from tablename;
你應(yīng)該可以得到一個(gè)表,內(nèi)容就是你剛才輸入的了:
+------------+------------+
| first_name | last_name |
+------------+------------+|柳 | 如風(fēng)+------------+------------+
1 rows in set (0.00 sec)
腳本的開(kāi)始兩行是:
MySQL(和PHP搭配之最佳組合)_connect (localhost, username, password);
MySQL(和PHP搭配之最佳組合)_select_db (dbname);
這兩個(gè)函數(shù)調(diào)用用來(lái)打開(kāi) MySQL(和PHP搭配之最佳組合) 數(shù)據(jù)庫(kù),具體的參數(shù)的含義剛才已經(jīng)說(shuō)過(guò)了。
下面的一行是執(zhí)行一個(gè) SQL 語(yǔ)句 :
MySQL(和PHP搭配之最佳組合)_query ("INSERT INTO tablename (first_name, last_name)
VALUES ($first_name, $last_name)");MySQL(和PHP搭配之最佳組合)_query 函數(shù)就是用來(lái)對(duì)選定的數(shù)據(jù)庫(kù)執(zhí)行一個(gè) SQL 查詢(xún)。你可以在 MySQL(和PHP搭配之最佳組合)_query 函數(shù)中執(zhí)行任何的 SQL 語(yǔ)句。
將數(shù)據(jù)轉(zhuǎn)換成 json 格式的字符串, 并通過(guò) CURL 的 POST 的形式傳遞參數(shù)給服務(wù)端, 但是在服務(wù)端無(wú)法用 $_POST 獲取到數(shù)據(jù)。后臺(tái)用 $_POST 獲取到的信息為空, 但是可以通過(guò) $post = file_get_contents("php://input") 獲取到請(qǐng)求的相關(guān)信息。
Coentent-Type 的值為 application/x-www-data-urlencode 和 multipart/form-data 時(shí), php才會(huì)將http請(qǐng)求數(shù)據(jù)包中的數(shù)據(jù)填進(jìn) $_POST 。
如果 POST 的原始數(shù)據(jù)是一維數(shù)組或拼接的標(biāo)準(zhǔn)格式的鍵值對(duì)字符串,那么可以用 $_POST 來(lái)獲取。
如果要通過(guò) file_get_contents 獲取,這種情況下可以發(fā)送 json 字符串,用 json_encode 編碼轉(zhuǎn)換一下,或者使用 http_build_query 。
1、 區(qū)別 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input
2、 accept 和 content-Type區(qū)別
3、 Http Header里的Content-Type