一、獲取前端提交的信息
- 獲取參數
- 參考文章點擊查看
- 獲取之前需要知道前端提交時的方式和頭部字段代表的意義(當然也可以略過,不過以後踩坑的時候可能還會回來:)
- html發送的表單不指定enctype時爲content_type = application/x-www-form-urlencoded,傳遞的數據以key-value形式進行urlencode,name=123,age=12得到的是類似於name%3D123%26age%3D12形式
- multipart/form-data提交,數據未進行urlencode,header數據量較大(分別描述k-v值),文件必須用這種方式提交
- 其他有直接以文本形式提交的,text/plain,application/json,application/javascript等,沒有過多要求,只是在數據傳輸的時候規範化會更好一點,json形式傳輸是很普遍的一種方式
- $this->uri->segment()獲取從指定控制器的參數開始的參數,例如this->uri->segment(2)獲取...index.php/controller/index/3中的index
- $_GET
- $_POST(1.1,1.2,)
- file_get_content(”php://input“)獲取請求的原始數據,讀入一個字符串後返回,不同參數以&分隔,可以使用json_decode($data,true)強制轉換成php的關聯數組(第二個參數代表返回的結果爲數組)不適用於二進制文件(圖片、文檔等)(1.1,1.2,1.3)
- 定義判斷訪問方式的常量(定義常量文件:app/config/constants.php)
-
/* |-------------------------------------------------------------------------- | Judgment method for visit |-------------------------------------------------------------------------- */ define('IS_POST',strtolower($_SERVER['REQUEST_METHOD']) == 'post'); define('IS_GET',strtolower($_SERVER['REQUEST_METHOD']) == 'get'); define('IS_AJAX',isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
-
- 多入口文件配置
- 複製application下文件到新文件夾,在項目根目錄創建新入口文件,並更改入口文件中$application_folder爲新目錄
- 此方法中多個入口下面的資源訪問會出現問題,適用於前後端標準不一致等類型
- 如有兩個index.php和api.php,api.php入口訪問時需在此入口後加“?”(暫未解決取消添加,歡迎大神們留言點播)
二、常見問題
- echo,die,exit,return在php中的區別
- echo 打印數據,(php->瀏覽器/客戶端)
- die(‘abcd’),輸出信息,退出腳本
- exit(‘abcd’),die的別名
- return 終止後面代碼的執行並傳遞數據,(php->php)
- ==,===
- ==比較值
- ===比較值的內容和類型
- 跨域(接口訪問經常會出現跨域的問題)
- 在ci的入口文件中可以設置允許跨域訪問
-
header("Access-Control-Allow-Origin: * ");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header("Access-Control-Allow-Headers:x-requested-with,content-type");
三、sql操作(curd)【文檔比較簡略,可邊看邊實踐】
四、類庫使用