http協議模擬發送


<?php
//创建连接
$fp = fsockopen('localhost', 80, $errno, $errstr, 10);
//判断
if(!$fp) {
echo $errstr;die;
}
$http = '';
//请求行
$http .= "POST /class/Public/laravel/http/server.php HTTP/1.1\r\n";
//请求头
$http .= "Host: localhost\r\n";
$http .= "Connection: close\r\n";
$http .= "Cookie: username=admin;uid=200\r\n";
$http .= "User-agent: firefox-chrome-safari-ios-android\r\n";
$http .= "Content-type: application/x-www-form-urlencoded\r\n";
$http .= "Content-length: 37\r\n\r\n";
//请求体
$http .= "email=xiaohigh@163.com&username=admin\r\n";
//发送
fwrite($fp, $http);
$res = '';
//获取结果
while(!feof($fp)) {
$res .= fgets($fp);
}
echo $res;
?> 載入Class & Obj
<?php //命名空间使用的演示 namespace one\two; //引入类文件 include '2_1.php'; include '2_2.php'; include '2_3.php'; //实例化对象 / / 绝对路径 (完全限定名称) $obj = new \one\Obj; $obj2 = new \one\two\Obj; $obj4 = new \one\two\three\Obj; //直接实例化 如果当前代码的空间跟类文件的空间是一致的话 可以直接实例化 (非限定名称) // $obj3 = new Obj; //相对路径 (限定名称) // $obj5 = new three\Obj; // var_dump($obj5); ?>
Laravel 架構圖



Routes
// local: web\laravel\routes\web.php
<?php
Route::get('/form', function () {
return view('/form');
});
Route::get('/put', function () {
return view('/put');
});
Route::post('/insert', function () {
echo 'insert';
});
Route::get('/put', function () {
return view('put');
});
Route::put('/update', function () {
return 'update';
});
Route::get('/delete', function () {
return view('delete');
});
Route::delete('/del', function () {
return 'delete';
});
Route::get('/article/{id}', function ($id) {
return 'article'.$id;
});
Route::get('/goods/{id}', function ($id) {
return 'goods'.$id;
})->where('id', '\d+');
Route::get('/{type}-{id}', function ($type, $id) {
return 'type'.$type.'&'.$id;
});
?>
Middleware 中間件
//SSH php72 artisan make:middleware Login
//\web\laravel\app\Http\Middleware\Login.php
public function handle($request, Closure $next)
{
if(!session('uid')){
return redirect('/login');
}
return $next($request);
}
//\web\laravel\app\Http\Kernel.php protected $routeMiddleware = [ 'login' => \App\Http\Middleware\Login::class, ];
// \web\laravel\routes\web.php
Route::get('/setting', [
'middleware' => 'login',
'uses' => function(){
echo 'setting page';
}
]);
Route::get('/session', function () {
session(['uid' => 10]);
});
Controllers
//Route
Route::get('/controller', 'UserController@show');
Route::get('/user/edit/{id}','UserController@edit');
Route::get('/user/delete/{id}',[
'as' => 'udelete',
'uses' => 'UserController@delete'
]);
Route::get('/user/update',[
'middleware' => 'login',
'uses' => 'UserController@update',
]);
Route::get('/user/block','UserController@block')->middleware('login');
Route::resource('articles','ArticleController');
//php72 artisan make:controller ArticleController --resource
\\\web\laravel\app\Http\Controllers
public function index()
{
echo 'home';
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
echo 'id';
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
return view('edit');
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
echo 'update';
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
echo 'del';
}
}
//php72 artisan make:controller ArticleController
// \web\laravel\app\Http\Controllers
class UserController extends Controller
{
public function show()
{
return 'I Love You';
}
public function edit($id)
{
echo 'editor'.$id;
}
public function delete()
{
echo route('udelete',['id'=>100]);
}
public function update()
{
echo 'updateing';
}
public function block()
{
echo 'blocked';
}
}
// web\laravel\resources\views
<form action="/articles/20" method="post">
<input type="text" name="username">
<input type="hidden" name="_method" value="PUT">
{{csrf_field()}}
<input type="submit" value="edit">
</form>
<form action="/articles/300" method="post">
<input type="text" name="username">
<input type="hidden" name="_method" value="DELETE">
{{csrf_field()}}
<input type="submit" value="del">
</form>
Request
//Route
Route::get('/request', 'UserController@request');
//显示一个form表单
Route::get('/user-form', 'UserController@form');
Route::post('/form', 'UserController@insert');
Route::get('/file', 'UserController@show');
Route::post('/upload', 'UserController@upload');
//cookie操作
Route::get('/cookie', 'UserController@cookie');
//闪存操作
Route::get('/flash', 'UserController@flash');
Route::get('/old', 'UserController@old');
Route::get('/flash_1', 'UserController@flash_1');
Route::get('/get_flash', 'UserController@get_flash');
Route::post('/flash','UserController@doflash');
//Controllers
public function request(Request $request)
{
//$method = $request->method();
//echo $method;
// $url = $request->ip();
$username = $request->input('username');
$password = $request->input('password');
var_dump($username);
var_dump($password);
}
public function form()
{
return view('user');
}
public function insert(Request $request)
{
$username = $request->input('username');
//$password = $request->input('password');
var_dump($username);
$res = $request->has('username');
//$password = $request->input('password');
var_dump($res);
$res2 = $request->only(['username','password']);
//$password = $request->input('password');
var_dump($res2);
$res3 = $request->except(['username','password']);
//$password = $request->input('password');
var_dump($res3);
$res4 = $request->header('Cookie');
//$password = $request->input('password');
var_dump($res4);
}
public function show()
{
return view('upload');
}
public function upload(Request $request)
{
//检测文件是否有上传
//$res = $request->hasFile('profile');
//php脚本中的相对路径,都是相对于当前正在请求的文件。
if($request->hasFile('profile')) {
//file_get_contents(filename)
//file_put_contents(filename, data)
//fopen(filename, mode)
//include
$request->file('profile')->move('./upload', 'liuyan.jpg');
}
//var_dump($res);
}
/**
* cookie操作
*/
public function cookie(Request $request)
{
//写入cookie setcookie
// \Cookie::queue('name','xdl',20); //时间单位为分钟不是秒
return response('')->withCookie('xiongdilian','zhenbang', 5);
//读取
// $res = \Cookie::get('name');
//获取
// $res = $request->cookie('xiongdilian');
}
/**
* 闪存的演示
*/
public function flash()
{
return view('flash');
}
public function doflash(Request $request)
{
// var_dump($request->all());
$request->flash();//将请求过来的参数 都闪存起来
//跳转到原来页面重写填写参数
return back();
}
public function old()
{
var_dump(old('username'));
}
/**
* 自定义闪存
*/
public function flash_1()
{
//手动闪存数据
\Session::flash('name','xiaohigh');
}
/**
* 读取闪存
*/
public function get_flash()
{
echo session('name');
}
2
