在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ PHP問答

對于重復(fù)數(shù)據(jù)很多的列不合適簡建立索引,因?yàn)檫^濾后數(shù)據(jù)量仍然很大,先走索引在走表,所以很慢

抱緊我 回答

墻內(nèi)找了很長時(shí)間都沒找到,最終還是在google里找到了答案。
文檔的描述不是很清楚,其實(shí)問題在于使用javascript 接入api 認(rèn)證方式應(yīng)該使用默認(rèn)的用戶認(rèn)證 和 web中間件,而不是用passport提供的登錄方式以及 auth:api中間件

  1. 使用laravel默認(rèn)的用戶認(rèn)證,

    php artisan make:auth
  2. 配置文件 config/auth.php 中授權(quán)看守器 guards 的 api 的 driver 選項(xiàng)改為 passport(估計(jì)不改也行,沒有試過,使用javascript接入api的目的是多套應(yīng)用程序公用一套api,所以還是改了)

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],
  3. 將 CreateFreshApiToken 中間件添加到 web 中間件組

        protected $middlewareGroups = [
            'web' => [
                ...
                \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
            ],
    
            'api' => [
                'throttle:60,1',
                'bindings',
            ],
        ];
  4. 訪問 域名/login 登錄
    圖片描述
  5. 登錄成功之后打開控制臺(tái)發(fā)現(xiàn)cookie中會(huì)有l(wèi)aravel_token
    圖片描述
  6. 請求其他接口Header中需要攜帶該cookie 與 X-CSRF-TOKEN,默認(rèn)axios幫我做了這些,下面是postman的示例
    圖片描述
離觴 回答

亂序這個(gè)沒法, 只有看在服務(wù)器上排序后把key去掉

墨小白 回答

問題已經(jīng)解決!
原因是我apache服務(wù)器的配置文件http.conf沒有配置正確
正確配置如下:
1:開啟LoadModule rewrite_module modules/mod_rewrite.so(去掉這段之前的#
2: 將DocumentRoot對應(yīng)的<Diretory>標(biāo)簽下的AllowOverride None改為AllowOverride ALL(配置文件里面共有三處的AllowOverride,我是將yii文件夾放在了htdocs下 )

DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted 
</Directory>
遲月 回答

定義一個(gè)struct

type Param struct {
    UserId int  `json:"userid"`
    Username string `json:"username,omitempty"`
    Userpass string `json:"userpass,omitempty"`
}

var v Param
json.Unmarshal(c.Ctx.Input.RequestBody, &v)
離人歸 回答

Composer 安裝的?是的話發(fā)下composer.json的文件內(nèi)容
一般這個(gè)json文件里有個(gè)這樣的參數(shù)

clipboard.png

這里的意思就是Respect\Validation\ 這個(gè)命名空間指向了當(dāng)前目錄的library 目錄

clipboard.png

之后我如果要使用Validator.php 這個(gè)類

我只需要 use Respect\Validation\Validator as v;

基本就是這樣的方式調(diào)用

孤星 回答

好久沒看到想答的問題了,來一波

a. 這個(gè)問題和redis毫無關(guān)系

b. 上代碼

<?php
//splat.php
function gen() {
  global $argv;
  $max = $argv[1];
  while($max--) {
    yield(str_repeat('x', 10000));
  }
}

function noop() {

}

function getargs() {
  $arg = func_get_args();
}

function splat(...$arg) {

}

function printmemory($msg) {
  printf("%s: %d/%d\n", $msg, memory_get_usage(), memory_get_peak_usage());
}

printmemory(__LINE__);
$gen = gen();
printmemory(__LINE__);
foreach(gen() as $r) {
  crc32($r);
}
printmemory(__LINE__);
$argv[2](...$gen);
printmemory(__LINE__);
~/Desktop $ php splat.php 10000 getargs
27: 357896/394272
29: 358504/394272
33: 370816/394272
35: 382912/123779064
~/Desktop $ php splat.php 10000 noop
27: 357896/394272
29: 358504/394272
33: 370816/394272
35: 382912/123250912
~/Desktop $ php splat.php 10000 splat
27: 357896/394272
29: 358504/394272
33: 370816/394272
35: 382912/123779064
~/Desktop $ php splat.php 1000 splat
27: 357896/394272
29: 358504/394272
33: 370816/394272
35: 382912/12695544
~/Desktop $ php splat.php 100 splat
27: 357896/394272
29: 358504/394272
33: 370816/394272
35: 382912/1607672

c. 解釋

27-29-33之間,幾乎沒有內(nèi)存占用,這是所謂的"生成器節(jié)省內(nèi)存”的現(xiàn)象,也就是各種相關(guān)文章里都會(huì)解釋的,在30行迭代生成器的時(shí)候,每次循環(huán)都會(huì)進(jìn)到生成器內(nèi)部去yield一次,產(chǎn)生一個(gè)大字符串,下次循環(huán)的時(shí)候循環(huán)變量又重新被賦值,之前的字符串自然會(huì)被GC回收,所以無論循環(huán)多大多少次,占用的內(nèi)存是穩(wěn)定的(包括上面的$gen=gen()也是幾乎不占內(nèi)存的)

33-35,無論被調(diào)用的函數(shù)如何,甚至noop函數(shù),都一樣會(huì)占用大量內(nèi)存,占用內(nèi)存的量明顯和次數(shù)成正比,也就是說生成器的內(nèi)容被合并到一起而占用了一整塊內(nèi)存。這其實(shí)很容易解釋,幾乎的所有語言“調(diào)用函數(shù)”的過程都是類似的

  1. 首先計(jì)算所有參數(shù),形成參數(shù)列表
  2. 生成call frame(其中包含調(diào)用被調(diào)雙方、文件行號、參數(shù)列表等等信息),壓入call stack中
  3. 控制權(quán)移交給函數(shù)內(nèi)部

(當(dāng)然省略了超級多的細(xì)節(jié),比如實(shí)參形參的映射/copy啊,內(nèi)存管理啊等等什么的,和本題無關(guān))

...$args這個(gè)操作符其實(shí)影響的就是第一個(gè)階段,計(jì)算參數(shù)的時(shí)候,看到...操作符,就需要展開其中的參數(shù)來形成參數(shù)列表,那么用生成器的場合,這個(gè)階段內(nèi)存就從原有生成器的少量占用變成了完整的占用了,所以即使是空的noop函數(shù)也會(huì)占用幾乎一樣多的內(nèi)存,你的理解是正確的

回到原題的那個(gè)redis問題的話,因?yàn)橹貜?fù)調(diào)用redis方法一定會(huì)占用大量的額外網(wǎng)絡(luò)開銷,而一次性批量插入又鐵定逃不開內(nèi)存占用(其實(shí)你想redis擴(kuò)展要發(fā)送這個(gè)批量的指令給redis,那么這塊內(nèi)存肯定是要的),比較好的方式就是分組了,每1000個(gè)或者10000個(gè)合并成一次$redis調(diào)用,mysql也好其他場景也是類似的

雨蝶 回答

輸入框

可以參考一下element ui的的輸入框。

  1. 姓名模糊搜索
  2. 搜索結(jié)果顯示可以分辨作者的信息。如:學(xué)校、出生年份
別瞎鬧 回答

重新編譯,啟用--enable-mbstring

失心人 回答
Typecho_Widget::widget('Widget_User')->to($user);
        $user->name();

即可

逗婦惱 回答

丟失參數(shù),分頁的最好使用get方式請求傳參

旖襯 回答

你那個(gè)src怎么有個(gè)v1

柒喵 回答

composer install
就可以了

只要你上傳了composer.lock文件,就直接用composer install安裝線上環(huán)境的依賴庫,這樣可以保證線上和本地的依賴庫中各個(gè)依賴的版本完全相同。而且直接使用composer install會(huì)省去分析依賴的時(shí)間,直接下載安裝依賴庫,速度會(huì)非???。

線上生產(chǎn)環(huán)境應(yīng)避免使用composer update,composer update命令會(huì)更新各依賴的版本,不保證完全兼容之前的代碼。

瘋浪 回答

client_id是你這個(gè)應(yīng)用在oAuth2網(wǎng)站注冊的應(yīng)用獲得的。

比如騰訊吧,雖然騰訊不一定是密碼模式,但是這里舉個(gè)例子。

如果你是一個(gè)A網(wǎng)站,需要獲取用戶在騰訊的賬戶信息,那么你需要在騰訊注冊你的應(yīng)用,獲取你的client_id
這樣在認(rèn)證的時(shí)候,騰訊的OAuth就可以區(qū)分這個(gè)用戶授權(quán)了哪些應(yīng)用(你的A網(wǎng)站或者別人的B網(wǎng)站)。

A網(wǎng)站和B網(wǎng)站都有各自的client_id,騰訊根據(jù)這個(gè)id來區(qū)分用戶給予的授權(quán)

當(dāng)然了,為了防止偽造,還會(huì)另外有一個(gè)clinet_secret用于確認(rèn)你使用的client_id確實(shí)是你這個(gè)網(wǎng)站所持有的。

還有你所不理解的幾個(gè)參與者。
還是以上面的例子解釋。

  • 用戶 是騰訊的用戶,A網(wǎng)站或者B網(wǎng)站需要用戶的授權(quán)來獲取用戶的騰訊賬戶的信息。
  • 第三方客戶端 就是A網(wǎng)站或者B網(wǎng)站的手機(jī)APP(網(wǎng)頁)之類的。
  • 授權(quán)服務(wù)端 就是指騰訊啦
  • 客戶端 就是指A網(wǎng)站或者B網(wǎng)站的服務(wù)器

至于為什么要分成第三方客戶端客戶端,這個(gè)主要是為了secret_id保密,如果你的secret_id直接寫在用戶應(yīng)用當(dāng)中,那么誰都可以用你的A網(wǎng)站的身份去獲取用戶的信息了。所以secret_id只能保存在后臺(tái)。

所以在這里可以理解成客戶端就是指A網(wǎng)站的服務(wù)器,在面對騰訊的Oauth授權(quán)的情況下,騰訊是授權(quán)服務(wù)端,A網(wǎng)站后臺(tái)是授權(quán)的客戶端。


暫時(shí)就寫這么點(diǎn),有說錯(cuò)或者還有不理解的話后面再補(bǔ)充

青檸 回答

不會(huì),會(huì)等待,全面四個(gè)進(jìn)程中哪個(gè)先處理完就會(huì)回過頭來處理這個(gè)。

如果前面四個(gè)一直沒處理完,而且時(shí)間又超過nginx設(shè)置的超時(shí)時(shí)間,就會(huì)返回超時(shí)錯(cuò)誤。

夢囈 回答

正好最近對接微信H5支付。
我們的解決方案是,讓用戶選擇。
當(dāng)用戶點(diǎn)擊了支付的時(shí)候,彈出一個(gè)層,有兩個(gè)按鈕已支付支付失敗。當(dāng)從微信返回的時(shí)候,用戶看到后根據(jù)點(diǎn)擊情況,判斷是跳轉(zhuǎn)到哪個(gè)鏈接。

冷溫柔 回答

OpenCV 的 Features2D 中可以使用,特征匹配直接搞定。

不討囍 回答

你可以在授權(quán)登錄成功獲取到openid的時(shí)候,然后綁定并保存在cookie中,在需要驗(yàn)證登錄的頁面驗(yàn)證是否有這個(gè)cookie值就好了

風(fēng)畔 回答

exception 是php內(nèi)置類。

core.php 是phpstorm自帶的文件,作用類似索引php內(nèi)置的函數(shù)和類 ,用來做代碼提示的