速戰速決 (6) - PHP: 獲取 http 請求數據, 獲取 get 數據 和 post 數據, json 字符串與對象之間的相互轉換


[源碼下載]


速戰速決 (6) - PHP: 獲取 http 請求數據, 獲取 get 數據 和 post 數據, json 字符串與對象之間的相互轉換



作者:webabcd


介紹
速戰速決 之 PHP

  • 獲取 http 請求數據
  • 獲取 get 數據 和 post 數據
  • json 字符串與對象之間的相互轉換



示例
1、獲取 http 請求數據
http/http1.php

<?php
/**
 * 獲取 http 請求數據
 */

// 通過 $_SERVER 獲取相關數據
echo "PHP_SELF : " . $_SERVER['PHP_SELF'] . "<br />";
echo "GATEWAY_INTERFACE : " . $_SERVER['GATEWAY_INTERFACE'] . "<br />";
echo "SERVER_ADDR : " . $_SERVER['SERVER_ADDR'] . "<br />";
echo "SERVER_NAME : " . $_SERVER['SERVER_NAME'] . "<br />";
echo "SERVER_SOFTWARE : " . $_SERVER['SERVER_SOFTWARE'] . "<br />";
echo "SERVER_PROTOCOL : " . $_SERVER['SERVER_PROTOCOL'] . "<br />";
echo "REQUEST_METHOD : " . $_SERVER['REQUEST_METHOD'] . "<br />";
echo "REQUEST_TIME : " . $_SERVER['REQUEST_TIME'] . "<br />";
echo "REQUEST_TIME_FLOAT : " . $_SERVER['REQUEST_TIME_FLOAT'] . "<br />";
echo "QUERY_STRING : " . htmlspecialchars($_SERVER['QUERY_STRING']) . "<br />";
echo "DOCUMENT_ROOT : " . $_SERVER['DOCUMENT_ROOT'] . "<br />";
echo "HTTP_ACCEPT : " . $_SERVER['HTTP_ACCEPT'] . "<br />";
echo "HTTP_ACCEPT_CHARSET : " . $_SERVER['HTTP_ACCEPT_CHARSET'] . "<br />";
echo "HTTP_ACCEPT_ENCODING : " . $_SERVER['HTTP_ACCEPT_ENCODING'] . "<br />";
echo "HTTP_ACCEPT_LANGUAGE : " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "<br />";
echo "HTTP_CONNECTION : " . $_SERVER['HTTP_CONNECTION'] . "<br />";
echo "HTTP_HOST : " . $_SERVER['HTTP_HOST'] . "<br />";
echo "HTTP_REFERER : " . $_SERVER['HTTP_REFERER'] . "<br />";
echo "HTTP_USER_AGENT : " . $_SERVER['HTTP_USER_AGENT'] . "<br />";
echo "HTTPS : " . $_SERVER['HTTPS'] . "<br />";
echo "REMOTE_ADDR : " . $_SERVER['REMOTE_ADDR'] . "<br />";
echo "REMOTE_HOST : " . $_SERVER['REMOTE_HOST'] . "<br />";
echo "REMOTE_PORT : " . $_SERVER['REMOTE_PORT'] . "<br />";
echo "REMOTE_USER : " . $_SERVER['REMOTE_USER'] . "<br />";
echo "REDIRECT_REMOTE_USER : " . $_SERVER['REDIRECT_REMOTE_USER'] . "<br />";
echo "SCRIPT_FILENAME : " . $_SERVER['SCRIPT_FILENAME'] . "<br />";
echo "SERVER_ADMIN : " . $_SERVER['SERVER_ADMIN'] . "<br />";
echo "SERVER_PORT : " . $_SERVER['SERVER_PORT'] . "<br />";
echo "SERVER_SIGNATURE : " . $_SERVER['SERVER_SIGNATURE'] . "<br />";
echo "PATH_TRANSLATED : " . $_SERVER['PATH_TRANSLATED'] . "<br />";
echo "SCRIPT_NAME : " . $_SERVER['SCRIPT_NAME'] . "<br />";
echo "REQUEST_URI : " . htmlspecialchars($_SERVER['REQUEST_URI']) . "<br />";
echo "PHP_AUTH_DIGEST : " . $_SERVER['PHP_AUTH_DIGEST'] . "<br />";
echo "PHP_AUTH_USER : " . $_SERVER['PHP_AUTH_USER'] . "<br />";
echo "PHP_AUTH_PW : " . $_SERVER['PHP_AUTH_PW'] . "<br />";
echo "AUTH_TYPE : " . $_SERVER['AUTH_TYPE'] . "<br />";
echo "PATH_INFO : " . $_SERVER['PATH_INFO'] . "<br />";
echo "ORIG_PATH_INFO : " . $_SERVER['ORIG_PATH_INFO'] . "<br />";


2、獲取 get 數據 和 post 數據
http/http2.php

<?php
/**
 * 獲取 get 數據 和 post 數據
 */

// 獲取 url 參數(get 數據)
$params = getQueryParams($_SERVER['QUERY_STRING']);
echo "param1: " . $params["param1"];
echo "<br />";
echo "param2: " . $params["param2"];
echo "<br />";

function getQueryParams($query)
{
    $queryParts = explode('&', $query);
    $params = array();
    foreach ($queryParts as $param)
    {
        $item = explode('=', $param);
        $params[$item[0]] = $item[1];
    }
    return $params;
}



// 通過 $_POST 獲取 post 數據
// 判斷 $_POST["btnSubmit"] 是否存在,如果存在則表示有 post 過來的 form
if  (isset($_POST["btnSubmit"]))
{
    if (empty($_POST['txtUsername']))
    {
        echo "您沒有輸入用戶名";
        exit(0);
    }

    echo "您的用戶名: " . $_POST['txtUsername'] . "";
}
?>

<form action="" method="post">
    <div>姓名:</div>
    <div><input type="text" id="txtUsername" name="txtUsername" value="wanglei" /></div>

    <div><input type="submit" name="btnSubmit" value="提交"/></div>
</form>


3、獲取 get 數據 和 post 數據
encode/json.php

<?php
/**
 * Created by PhpStorm.
 * User: wanglei
 * Date: 2015/12/30
 * Time: 9:45
 */

class Name
{
    public $firstName;
    public $lastName;
}

class Student
{
    public $name;

    public $number;
    public $date1;
    public $date2;
}

$jsonArray = '
[
    {
        "name":{"firstName":"abc", "lastName":"xyz"},
        "number":1,
        "date1":"2015-12-30 10:00:48",
        "date2":1451440848
    },
    {
        "name":{"firstName":"lmn", "lastName":"rst"},
        "number":2,
        "date1":"2015-11-22 17:13:41",
        "date2":1448183621
    }
]';

// 設置當前時區為東八時區(北京時區)
date_default_timezone_set("Etc/GMT-8");

// json 字符串轉對象
$result = array();
$myArray = json_decode($jsonArray, true);
$myArrayCount = count($myArray);
for ($i = 0; $i < $myArrayCount; $i++)
{
    $student = new Student();
    $student->number = $myArray[$i]["number"];
    $student->date1 = $myArray[$i]["date1"];
    $student->date2 = date('Y-m-d H:i:s', $myArray[$i]["date2"]);

    $name = new Name();
    $jsonName = $myArray[$i]["name"];
    $name->firstName = $jsonName["firstName"];
    $name->lastName = $jsonName["lastName"];

    $student->name = $name;
    $result[] = $student;
}
var_dump($result);

// 對象轉 json 字符串
echo json_encode($result);
echo "<br />";

echo "<br />";


// 獲取當前時間的時間戳(到 1970-1-1 的秒數)
echo time();
echo "<br />";

// 獲取指定時間的時間戳(到 1970-1-1 的秒數)
echo strtotime("2015-12-30 16:00:10");
echo "<br />";

// 時間戳的格式化
echo date('Y-m-d H:i:s', time());
echo "<br />";

// 時間戳的格式化
echo date('Y-m-d H:i:s', 1460969676);
echo "<br />";



OK
[源碼下載]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM