欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

thinkphp5 URL和路由的功能詳解與實(shí)例

 更新時(shí)間:2017年12月26日 11:48:03   作者:小火柴的藍(lán)色理想  
這篇文章主要介紹了thinkphp5 URL和路由的功能詳解與實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

前面的話

本文將詳細(xì)介紹thinkphp5URL和路由

URL訪問(wèn)

ThinkPHP采用單一入口模式訪問(wèn)應(yīng)用,對(duì)應(yīng)用的所有請(qǐng)求都定向到應(yīng)用的入口文件,系統(tǒng)會(huì)從URL參數(shù)中解析當(dāng)前請(qǐng)求的模塊、控制器和操作,下面是一個(gè)標(biāo)準(zhǔn)的URL訪問(wèn)格式:

http://domainName/index.php/模塊/控制器/操作

其中index.php就稱之為應(yīng)用的入口文件(注意入口文件可以被隱藏,后面會(huì)提到)

模塊在ThinkPHP中的概念其實(shí)就是應(yīng)用目錄下面的子目錄,而官方的規(guī)范是目錄名小寫,因此模塊全部采用小寫命名,無(wú)論URL是否開(kāi)啟大小寫轉(zhuǎn)換,模塊名都會(huì)強(qiáng)制小寫

應(yīng)用的index模塊的Index控制器定義如下:

<?php
namespace app\index\controller;
class Index
{
  public function index()
  {
    return 'index';
  }
  public function hello($name = 'World')
  {
    return 'Hello,' . $name . '!';
  }
}

如果直接訪問(wèn)入口文件的話,由于URL中沒(méi)有模塊、控制器和操作,因此系統(tǒng)會(huì)訪問(wèn)默認(rèn)模塊(index)下面的默認(rèn)控制器(Index)的默認(rèn)操作(index),因此下面的訪問(wèn)是等效的:

http://tp5.com/index.php
http://tp5.com/index.php/index/index/index

如果要訪問(wèn)控制器的hello方法,則需要使用完整的URL地址

http://tp5.com/index.php/index/index/hello/name/thinkphp

訪問(wèn)URL地址后頁(yè)面輸出結(jié)果為:

Hello,thinkphp!

由于name參數(shù)為可選參數(shù),因此也可以使用

http://tp5.com/index.php/index/index/hello

訪問(wèn)URL地址后頁(yè)面輸出結(jié)果為:

Hello,World!

默認(rèn)情況下,URL地址中的控制器和操作名是不區(qū)分大小寫的,因此下面的訪問(wèn)其實(shí)是等效的:

http://tp5.com/index.php/index/Index/Index
http://tp5.com/index.php/index/INDEX/INDEX

如果控制器是駝峰的,例如定義一個(gè)HelloWorld控制器(application/index/controller/HelloWorld.php): 

<?php
namespace app\index\controller;
class HelloWorld
{
  public function index($name = 'World')
  {
    return 'Hello,' . $name . '!';
  }
}

正確的URL訪問(wèn)地址(該地址可以使用url方法生成)應(yīng)該是

http://tp5.com/index.php/index/hello_world/index

系統(tǒng)會(huì)自動(dòng)定位到HelloWorld控制器類去操作

如果使用

http://tp5.com/index.php/index/HelloWorld/index

將會(huì)報(bào)錯(cuò),并提示Helloworld控制器類不存在

如果希望嚴(yán)格區(qū)分大小寫訪問(wèn)(這樣就可以支持駝峰法進(jìn)行控制器訪問(wèn)),可以在應(yīng)用配置文件中設(shè)置:

// 關(guān)閉URL自動(dòng)轉(zhuǎn)換(支持駝峰訪問(wèn)控制器)
'url_convert' => false,

關(guān)閉URL自動(dòng)轉(zhuǎn)換之后,必須使用下面的URL地址訪問(wèn)(控制器名稱必須嚴(yán)格使用控制器類的名稱,不包含控制器后綴):

http://tp5.com/index.php/index/Index/index
http://tp5.com/index.php/index/HelloWorld/index

如果服務(wù)器環(huán)境不支持pathinfo方式的URL訪問(wèn),可以使用兼容方式,例如:

http://tp5.com/index.php?s=/index/Index/index

其中變量s的名稱的可以配置的

5.0不再支持普通的URL訪問(wèn)方式,所以下面的訪問(wèn)是無(wú)效的,你會(huì)發(fā)現(xiàn)無(wú)論輸入什么,訪問(wèn)的都是默認(rèn)的控制器和操作

http://tp5.com/index.php?m=index&c=Index&a=hello

參數(shù)傳入

通過(guò)操作方法的參數(shù)綁定功能,可以實(shí)現(xiàn)自動(dòng)獲取URL的參數(shù),仍然以上面的控制器為例,控制器代碼如下:

<?php
namespace app\index\controller;
class Index
{
  public function index()
  {
    return 'index';
  }
  public function hello($name = 'World')
  {
    return 'Hello,' . $name . '!';
  }
}

當(dāng)我們?cè)L問(wèn)

http://tp5.com/index.php/index/index/hello

就是訪問(wèn)app\index\controller\Index控制器類的hello方法,因?yàn)闆](méi)有傳入任何參數(shù),name參數(shù)就使用默認(rèn)值World。如果傳入name參數(shù),則使用:

http://tp5.com/index.php/index/index/hello/name/thinkphp

頁(yè)面輸出結(jié)果為:

Hello,thinkphp!

現(xiàn)在給hello方法增加第二個(gè)參數(shù):

public function hello($name = 'World', $city = '')
  {
    return 'Hello,' . $name . '! You come from ' . $city . '.';
  }

訪問(wèn)地址為http://tp5.com/index.php/index/index/hello/name/thinkphp/city/shanghai

頁(yè)面輸出結(jié)果為:

Hello,thinkphp! You come from shanghai.

可以看到,hello方法會(huì)自動(dòng)獲取URL地址中的同名參數(shù)值作為方法的參數(shù)值,而且這個(gè)參數(shù)的傳入順序不受URL參數(shù)順序的影響,例如下面的URL地址輸出的結(jié)果和上面是一樣的:

http://tp5.com/index.php/index/index/hello/city/shanghai/name/thinkphp

或者使用http://tp5.com/index.php/index/index/hello?city=shanghai&name=thinkphp

還可以進(jìn)一步對(duì)URL地址做簡(jiǎn)化,前提就是我們必須明確參數(shù)的順序代表的變量,我們更改下URL參數(shù)的獲取方式,把應(yīng)用配置文件中的url_param_type參數(shù)的值修改如下:

// 按照參數(shù)順序獲取
'url_param_type' => 1,

現(xiàn)在,URL的參數(shù)傳值方式就變成了嚴(yán)格按照操作方法的變量定義順序來(lái)傳值了,也就是說(shuō)我們必須使用下面的URL地址訪問(wèn)才能正確傳入name和city參數(shù)到hello方法:http://tp5.com/index.php/index/index/hello/thinkphp/shanghai

頁(yè)面輸出結(jié)果為:

Hello,thinkphp! You come from shanghai.

如果改變參數(shù)順序?yàn)閔ttp://tp5.com/index.php/index/index/hello/shanghai/thinkphp

頁(yè)面輸出結(jié)果為:

Hello,shanghai! You come from thinkphp.

顯然不是我們預(yù)期的結(jié)果。

同樣,我們?cè)噲D通過(guò)http://tp5.com/index.php/index/index/hello/name/thinkphp/city/shanghai

訪問(wèn)也不會(huì)得到正確的結(jié)果

[注意]按順序綁定參數(shù)的話,操作方法的參數(shù)只能使用URL pathinfo變量,而不能使用get或者post變量

隱藏入口

可以去掉URL地址里面的入口文件index.php,但是需要額外配置WEB服務(wù)器的重寫規(guī)則。

以Apache為例,需要在入口文件的同級(jí)添加.htaccess文件(官方默認(rèn)自帶了該文件),內(nèi)容如下

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

如果用的phpstudy,規(guī)則如下:

<IfModule mod_rewrite.c> 
Options +FollowSymlinks -Multiviews 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] 
</IfModule>

接下來(lái)就可以使用下面的URL地址訪問(wèn)了

http://tp5.com/index/index/index
http://tp5.com/index/index/hello

如果使用的apache版本使用上面的方式無(wú)法正常隱藏index.php,可以嘗試使用下面的方式配置.htaccess文件:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

如果是Nginx環(huán)境的話,可以在Nginx.conf中添加:

location / { // …..省略部分代碼
  if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?s=/$1 last;
    break;
  }
}

定義路由

URL地址里面的index模塊怎么才能省略呢,默認(rèn)的URL地址顯得有點(diǎn)長(zhǎng),下面就來(lái)說(shuō)說(shuō)如何通過(guò)路由簡(jiǎn)化URL訪問(wèn)。

我們?cè)诼酚啥x文件(application/route.php)里面添加一些路由規(guī)則,如下:

return [
  // 添加路由規(guī)則 路由到 index控制器的hello操作方法
  'hello/:name' => 'index/index/hello',
];

該路由規(guī)則表示所有hello開(kāi)頭的并且?guī)?shù)的訪問(wèn)都會(huì)路由到index控制器的hello操作方法。

路由之前的URL訪問(wèn)地址為:http://tp5.com/index/index/hello/name/thinkphp

定義路由后就只能訪問(wèn)下面的URL地址http://tp5.com/hello/thinkphp

[注意]定義路由規(guī)則后,原來(lái)的URL地址將會(huì)失效,變成非法請(qǐng)求。

但這里有一個(gè)小問(wèn)題,如果我們只是訪問(wèn)http://tp5.com/hello

將發(fā)生錯(cuò)誤

事實(shí)上這是由于路由沒(méi)有正確匹配到,我們修改路由規(guī)則如下:

return [
  // 路由參數(shù)name為可選
  'hello/[:name]' => 'index/hello',
];

使用[]把路由規(guī)則中的變量包起來(lái),就表示該變量為可選,接下來(lái)就可以正常訪問(wèn)了http://tp5.com/hello

當(dāng)name參數(shù)沒(méi)有傳入值的時(shí)候,hello方法的name參數(shù)有默認(rèn)值World,所以輸出的內(nèi)容為 Hello,World!

除了路由配置文件中定義之外,還可以采用動(dòng)態(tài)定義路由規(guī)則的方式定義,例如在路由配置文件(application/route.php)的開(kāi)頭直接添加下面的方法:

use think\Route;
Route::rule('hello/:name', 'index/hello');

完成的效果和使用配置方式定義是一樣的。

無(wú)論是配置方式還是通過(guò)Route類的方法定義路由,都統(tǒng)一放到路由配置文件application/route.php文件中

[注意]路由配置不支持在模塊配置文件中設(shè)置

【完整匹配】

前面定義的路由是只要以hello開(kāi)頭就能進(jìn)行匹配,如果需要完整匹配,可以使用下面的定義:

return [
  // 路由參數(shù)name為可選
  'hello/[:name]$' => 'index/hello',
];

當(dāng)路由規(guī)則以$結(jié)尾的時(shí)候就表示當(dāng)前路由規(guī)則需要完整匹配。

當(dāng)我們?cè)L問(wèn)下面的URL地址的時(shí)候:

http://tp5.com/hello // 正確匹配
http://tp5.com/hello/thinkphp // 正確匹配
http://tp5.com/hello/thinkphp/val/value // 不會(huì)匹配

【閉包定義】

還支持通過(guò)定義閉包為某些特殊的場(chǎng)景定義路由規(guī)則,例如:

return [
  // 定義閉包
  'hello/[:name]' => function ($name) {
    return 'Hello,' . $name . '!';
  },
];

或者

use think\Route;
Route::rule('hello/:name', function ($name) {
  return 'Hello,' . $name . '!';
});

[注意]閉包函數(shù)的參數(shù)就是路由規(guī)則中定義的變量

因此,當(dāng)訪問(wèn)下面的URL地址:http://tp5.com/hello/thinkphp

會(huì)輸出

Hello,thinkphp!

【設(shè)置URL分隔符】

如果需要改變URL地址中的pathinfo參數(shù)分隔符,只需要在應(yīng)用配置文件(application/config.php)中設(shè)置:

// 設(shè)置pathinfo分隔符
'pathinfo_depr'     => '-',

路由規(guī)則定義無(wú)需做任何改變,我們就可以訪問(wèn)下面的地址:http://tp5.com/hello-thinkphp

【路由參數(shù)】

還可以約束路由規(guī)則的請(qǐng)求類型或者URL后綴之類的條件,例如:

return [
  // 定義路由的請(qǐng)求類型和后綴
  'hello/[:name]' => ['index/hello', ['method' => 'get', 'ext' => 'html']],
];

上面定義的路由規(guī)則限制了必須是get請(qǐng)求,而且后綴必須是html的,所以下面的訪問(wèn)地址:

http://tp5.com/hello // 無(wú)效
http://tp5.com/hello.html // 有效
http://tp5.com/hello/thinkphp // 無(wú)效
http://tp5.com/hello/thinkphp.html // 有效

【變量規(guī)則】

接下來(lái),嘗試一些復(fù)雜的路由規(guī)則定義滿足不同的路由變量。在此之前,首先增加一個(gè)控制器類如下:

<?php
namespace app\index\controller;
class Blog
{
  public function get($id)
  {
    return '查看id=' . $id . '的內(nèi)容';
  }
  public function read($name)
  {
    return '查看name=' . $name . '的內(nèi)容';
  }
  public function archive($year, $month)
  {
    return '查看' . $year . '/' . $month . '的歸檔內(nèi)容';
  }
}

添加如下路由規(guī)則:

return [
  'blog/:year/:month' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']],
  'blog/:id'     => ['blog/get', ['method' => 'get'], ['id' => '\d+']],
  'blog/:name'    => ['blog/read', ['method' => 'get'], ['name' => '\w+']],
];

在上面的路由規(guī)則中,我們對(duì)變量進(jìn)行的規(guī)則約束,變量規(guī)則使用正則表達(dá)式進(jìn)行定義。

我們看下幾種URL訪問(wèn)的情況

// 訪問(wèn)id為5的內(nèi)容
http://tp5.com/blog/5
// 訪問(wèn)name為thinkphp的內(nèi)容
http://tp5.com/blog/thinkphp
// 訪問(wèn)2015年5月的歸檔內(nèi)容
http://tp5.com/blog/2015/05

 【路由分組】

上面的三個(gè)路由規(guī)則由于都是blog打頭,所以我們可以做如下的簡(jiǎn)化:

return [
  '[blog]' => [
    ':year/:month' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']],  
    ':id'     => ['blog/get', ['method' => 'get'], ['id' => '\d+']],
    ':name'    => ['blog/read', ['method' => 'get'], ['name' => '\w+']],
  ],
];

對(duì)于這種定義方式,我們稱之為路由分組,路由分組一定程度上可以提高路由檢測(cè)的效率

【復(fù)雜路由】

有時(shí)候,還需要對(duì)URL做一些特殊的定制,例如如果要同時(shí)支持下面的訪問(wèn)地址

http://tp5.com/blog/thinkphp
http://tp5.com/blog-2015-05

我們只要稍微改變路由定義規(guī)則即可:

return [
  'blog/:id'      => ['blog/get', ['method' => 'get'], ['id' => '\d+']],
  'blog/:name'     => ['blog/read', ['method' => 'get'], ['name' => '\w+']],
  'blog-<year>-<month>' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']],
];

對(duì) blog-<year>-<month> 這樣的非正常規(guī)范,我們需要使用<變量名>這樣的變量定義方式,而不是 :變量名方式。

簡(jiǎn)單起見(jiàn),我們還可以把變量規(guī)則統(tǒng)一定義,例如:

return [
  // 全局變量規(guī)則定義
  '__pattern__'     => [
    'name' => '\w+',
    'id'  => '\d+',
    'year' => '\d{4}',
    'month' => '\d{2}',
  ],
  // 路由規(guī)則定義
  'blog/:id'      => 'blog/get',
  'blog/:name'     => 'blog/read',
  'blog-<year>-<month>' => 'blog/archive',
];

在__pattern__中定義的變量規(guī)則我們稱之為全局變量規(guī)則,在路由規(guī)則里面定義的變量規(guī)則我們稱之為局部變量規(guī)則,如果一個(gè)變量同時(shí)定義了全局規(guī)則和局部規(guī)則的話,當(dāng)前的局部規(guī)則會(huì)覆蓋全局規(guī)則的,例如:

return [
  // 全局變量規(guī)則
  '__pattern__'     => [
    'name' => '\w+',
    'id'  => '\d+',
    'year' => '\d{4}',
    'month' => '\d{2}',
  ],

  'blog/:id'      => 'blog/get',
  // 定義了局部變量規(guī)則
  'blog/:name'     => ['blog/read', ['method' => 'get'], ['name' => '\w{5,}']],
  'blog-<year>-<month>' => 'blog/archive',
];

URL生成

定義路由規(guī)則之后,可以通過(guò)Url類來(lái)方便的生成實(shí)際的URL地址(路由地址),針對(duì)上面的路由規(guī)則,我們可以用下面的方式生成URL地址。

// 輸出 blog/thinkphp
Url::build('blog/read', 'name=thinkphp');
Url::build('blog/read', ['name' => 'thinkphp']);
// 輸出 blog/5
Url::build('blog/get', 'id=5');
Url::build('blog/get', ['id' => 5]);
// 輸出 blog/2015/05
Url::build('blog/archive', 'year=2015&month=05');
Url::build('blog/archive', ['year' => '2015', 'month' => '05']);

[注意]build方法的第一個(gè)參數(shù)使用路由定義中的完整路由地址

還可以使用系統(tǒng)提供的助手函數(shù)url來(lái)簡(jiǎn)化

url('blog/read', 'name=thinkphp');
// 等效于
Url::build('blog/read', 'name=thinkphp');

通常在模板文件中輸出的話,可以使用助手函數(shù),例如:

{:url('blog/read', 'name=thinkphp')}

如果我們的路由規(guī)則發(fā)生調(diào)整,生成的URL地址會(huì)自動(dòng)變化

如果你配置了url_html_suffix參數(shù)的話,生成的URL地址會(huì)帶上后綴,例如:

'url_html_suffix'  => 'html',

那么生成的URL地址 類似

blog/thinkphp.html 
blog/2015/05.html

如果你的URL地址全部采用路由方式定義,也可以直接使用路由規(guī)則來(lái)定義URL生成,例如:

url('/blog/thinkphp');
Url::build('/blog/8');
Url::build('/blog/archive/2015/05');

生成方法的第一個(gè)參數(shù)一定要和路由定義的路由地址保持一致,如果你的路由地址比較特殊,例如使用閉包定義的話,則需要手動(dòng)給路由指定標(biāo)識(shí),例如: 

// 添加hello路由標(biāo)識(shí)
Route::rule(['hello','hello/:name'], function($name){
  return 'Hello,'.$name;
});
// 根據(jù)路由標(biāo)識(shí)快速生成URL
Url::build('hello', 'name=thinkphp');
// 或者使用
Url::build('hello', ['name' => 'thinkphp']);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PHP簡(jiǎn)單留言本功能實(shí)現(xiàn)代碼

    PHP簡(jiǎn)單留言本功能實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了PHP簡(jiǎn)單留言本功能的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 自定義min版smarty模板引擎MinSmarty.class.php文件及用法

    自定義min版smarty模板引擎MinSmarty.class.php文件及用法

    這篇文章主要介紹了自定義min版smarty模板引擎MinSmarty.class.php文件及用法,可實(shí)現(xiàn)簡(jiǎn)單的Smarty模板變量替換與輸出顯示等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-05-05
  • php compact 通過(guò)變量創(chuàng)建數(shù)組

    php compact 通過(guò)變量創(chuàng)建數(shù)組

    php compact函數(shù)用于創(chuàng)建數(shù)組,該函數(shù)創(chuàng)建數(shù)組比較特殊,compact函數(shù)參數(shù)將接受一個(gè)或多個(gè)變量,然后將變量的名稱作為該創(chuàng)建數(shù)組的索引,變量值作為該創(chuàng)建數(shù)組的值,然后返回創(chuàng)建完成的數(shù)組。本文章向大家講解compact函數(shù)的基本語(yǔ)法及使用實(shí)例。需要的碼農(nóng)可以參考一下。
    2016-11-11
  • 微信公眾號(hào)模板消息群發(fā)php代碼示例

    微信公眾號(hào)模板消息群發(fā)php代碼示例

    這篇文章主要為大家詳細(xì)介紹了微信公眾號(hào)模板消息群發(fā)php代碼示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Vagrant(WSL)+PHPStorm+Xdebu 斷點(diǎn)調(diào)試環(huán)境搭建

    Vagrant(WSL)+PHPStorm+Xdebu 斷點(diǎn)調(diào)試環(huán)境搭建

    這篇文章主要介紹了Vagrant(WSL)+PHPStorm+Xdebu 斷點(diǎn)調(diào)試環(huán)境搭建,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • ThinkPHP框架任意代碼執(zhí)行漏洞的利用及其修復(fù)方法

    ThinkPHP框架任意代碼執(zhí)行漏洞的利用及其修復(fù)方法

    這篇文章主要介紹了ThinkPHP框架任意代碼執(zhí)行漏洞的利用及其修復(fù)方法,該漏洞的修復(fù)對(duì)于廣大使用ThinkPHP的開(kāi)發(fā)人員來(lái)說(shuō)尤為重要!需要的朋友可以參考下
    2014-07-07
  • yii2簡(jiǎn)單使用less代替css示例

    yii2簡(jiǎn)單使用less代替css示例

    本篇文章主要介紹了yii2簡(jiǎn)單使用less代替css示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Laravel中unique和exists驗(yàn)證規(guī)則的優(yōu)化詳解

    Laravel中unique和exists驗(yàn)證規(guī)則的優(yōu)化詳解

    這篇文章主要給大家介紹了關(guān)于Laravel中unique和exists驗(yàn)證規(guī)則的優(yōu)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • PHP在線生成二維碼代碼(google api)

    PHP在線生成二維碼代碼(google api)

    通過(guò)google在線生成二維碼的api在線生成二維碼,需要的朋友可以參考下
    2013-06-06
  • php實(shí)現(xiàn)批量上傳數(shù)據(jù)到數(shù)據(jù)庫(kù)(.csv格式)的案例

    php實(shí)現(xiàn)批量上傳數(shù)據(jù)到數(shù)據(jù)庫(kù)(.csv格式)的案例

    下面小編就為大家?guī)?lái)一篇php實(shí)現(xiàn)批量上傳數(shù)據(jù)到數(shù)據(jù)庫(kù)(.csv格式)的案例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論