鍍金池/ 問答/ PHP問答
笨笨噠 回答

在switch(expression)中,expression只能是一個整數(shù)表達式或者枚舉常量,整數(shù)表達式可以是int類型或Integer包裝類型。由于,byte,short,char都可以隱式轉(zhuǎn)換為int類型,所以,這些類型也可以用作表達式。
你可以把兩個值存在一個新數(shù)組里,也就是枚舉常量,判斷第一個常量的case后面不寫break,程序會繼續(xù)執(zhí)行,如果你兩個值都有case滿足,則兩個case都能執(zhí)行的到。不知道是不是滿足你的要求~

遺莣 回答

阿里云存儲如何讓瀏覽器始終以200 (from cache)緩存圖片?

ETag也有他自己的問題,同一個文件在不同物理機上的inode是不同的,這就導致了在分布式的Web系統(tǒng)中,當訪問落在不同的物理機上時會返回不同的ETag,進而導致304失效,降級為200請求。

疚幼 回答

一般情況是你的代碼出現(xiàn)異常了,響應(yīng)碼500等。

尛憇藌 回答

方法一:

  1. 瀏覽器輸入文字
  2. 服務(wù)器調(diào)用python程序
  3. python程序?qū)⒄Z音寫到文件
  4. 服務(wù)器返回一個url,這個url內(nèi)部指向這個文件
  5. 瀏覽器請求這個url,獲得文件
  6. 瀏覽器播放文件

方法二:

  1. 瀏覽器輸入文字
  2. 服務(wù)器調(diào)用python程序
  3. python程序?qū)⒄Z音寫到文件
  4. 服務(wù)器將這個文件以流的形式返回給瀏覽器
  5. 瀏覽器播放
野橘 回答

1.從前端講的話,希望你用promise,點了送禮后,讓按鈕灰掉等接口返回后再讓按鈕可用
2.從后端講你update的時候加個where number >0;他就不會成負數(shù)了,后面的update會失敗。

心沉 回答

看一下兩個數(shù)據(jù)表引擎是不是一樣的

別瞎鬧 回答

我覺得 雪之祈舞 的方法很好
不過對于你的代碼,為什么匹配不到,我想原因在這里:

if (strpos($content, trim($CotentArr[$i])) != false)

這句判斷有問題,!= 應(yīng)該換成 !==
因為strpos函數(shù)用于查找字符串,如果查找到了則返回字符串出現(xiàn)的位置,當 CotentArr[$i] 的值是 Players 時,它在 $content 中出現(xiàn)的位置為0,經(jīng)過 != 判斷不會出現(xiàn)你期待的結(jié)果(!= 類型轉(zhuǎn)換,出現(xiàn)的位置為0,則為false)

題外話:
不建議你在 for(表達式1;表達式2;表達式3) 中的 表達式2 中使用count函數(shù),因為這3個表達式執(zhí)行的順序是:
表達式1 -> 表達式2 -> 表達式3 -> 表達式2 -> 表達式3 -> 表達式2.... 你使用的count函數(shù)會進行多次計算數(shù)組中的元素個數(shù)...,當然,PHP是很快的,你也可以不在乎

乞許 回答

“帶參數(shù)的裝飾器”,這樣的描述并不準確,@desc(arg) 更好的理解是函數(shù) desc 被調(diào)用,該函數(shù)返回一個裝飾器。況且你已經(jīng)知道處理方法了,只是想要知道為什么。這點上是一點就通的。

先理解一個,函數(shù)允許重新賦值的

def f():
    pass
f = 1
print(f)    # 1   

然后你對裝飾器的理解也已經(jīng)很充分了:

@log(i, j, k)
    def f():

# 等價于
tmp = log(i,j,k)
@tmp
def f():

這里的原因在于,你把 log 重新賦值了,它變成了一個裝飾器,而不是一個返回裝飾器的函數(shù)。嗯,原因就是這么簡單。

誮惜顏 回答

能貼代碼就不要貼圖啊?。。。。。?!

要做啥說明你可以用注釋啊?。。。。?/code>

從你的問題我給你幾個建議:

  1. 看nginx的錯誤日志,nginx一般能給你一個很好的反饋。
  2. 再看php-fpm的錯誤日志記錄,基本上能定位PHP的錯誤。
  3. 通常來說你這種是程序出錯了,我建議你用catch(Error $e)同時捕獲錯誤,如果是報錯的話,不用Error是捕獲不到的,Exception只能捕獲異常。

以上三點,切記切記。


更新一下回答:

從你代碼可見,你在用

try {
} catch(Exception $e) {
}

這里的Exception類不知道是你自己定義的還是框架里的,不管這兩種情況是輸入哪一種,假設(shè)你b.php中pdo所拋出的異常不是繼承你a所定義的這個異常類,你在a中肯定無法捕獲到。
所以你可以用\Exception試一下,為PHP中所有異常類的基類。
另外,我把

catch(Error $e)

加大一點,你用這個:

catch(Error $e)

試一下看看到底程序有沒有錯啊。
另外:

能貼代碼就不要貼圖?。。。。。。?!

夢一場 回答

不要去到vendor目錄修改源碼,直接在App\Http\Auth\LoginController下重寫validateLogin方法即可,我的是laravel5.5版本不同可能會有略微差別。
至于驗證碼的,當然力薦mews/captcha
laravel中使用起來簡直不要太簡單。(多余的代碼就不寫了)

$this->validate($request, [
    'captcha' => 'required|captcha',
]);
別傷我 回答

function (...) use (...) {...}

參考 PHP 文檔:https://secure.php.net/manual...

厭惡我 回答

若只是為了匹配一二三...十,那么正則 /[一二三四五六七八九十]+/g足夠。
若想匹配的是必須在中括號里的一....十, 那么使用正則 /\[([一二三四五六七八九十]+)\]/g,遍歷得到的匹配,每個匹配取第一個group即可。

扯機薄 回答

看看是不是防火墻的問題,你試試telnet你的端口,看看能不能連接上,如果不能,那就開啟了防火墻,8080端口沒有對外開放。

亮瞎她 回答

顯示的時候在 pri_name 前面添加 level個空格或者其它符號 就可以了

淡墨 回答

根據(jù) 官方文檔中對 mongo uri 的介紹, uri 后面指定的那個 database, 是用來指定授權(quán)數(shù)據(jù)庫的, 而不是用來指定連接成功后選擇的數(shù)據(jù)庫的.

/database : Optional. The name of the database to authenticate if the connection string includes authentication credentials in the form of username:password@. If /database is not specified and the connection string includes credentials, the driver will authenticate to the admin database.

之所以需要指定授權(quán)數(shù)據(jù)庫, 是因為授權(quán)數(shù)據(jù)庫并不總是會被起名為 admin, 這個名字只是大多數(shù)人都會起的名字, 也是 mongo 默認會連接的授權(quán)數(shù)據(jù)庫名. 你真把授權(quán)數(shù)據(jù)庫起名成 test 也是可以的, 那連接時就需要指定授權(quán)庫為 test : mongo://user:pass@localhost:27017/test .

回到你的問題, 你的授權(quán)庫應(yīng)該不叫 phptest 吧. 把這個數(shù)據(jù)庫名去掉, 應(yīng)該就可以連接成功. 連接成功后, 再用 MongoClient 選擇庫就是了. php 的 mongo 語法還是超級簡單的:

$mongo_client->phptest
無標題 回答

看你對并發(fā)的需求,如果并發(fā)量很大,還是需要連接池的

伐木累 回答

一個form只需一個hidden input 存放scrf隨機數(shù),每次載入form 或提交失敗後都會讀取新的scrf隨機數(shù)放入這個input,而這個scrf隨機數(shù)應(yīng)交由你的框架生成(當然你自己創(chuàng)造一個生成器也行)。方便的做法是每次載入form或提交失敗時用ajax取得這個scrf然後放入input,確保每次提交時都是正確的scrf隨機數(shù)。

*這個scrf應(yīng)該有時效性,比如設(shè)置成7000,就代表從提交form一刻數(shù)7秒,如超過7秒仍未提交成功則scrf隨機數(shù)會過期,form提交失敗。

笑忘初 回答

你在php.ini 里面把 session.cookie_lifetime 和 session.gc_maxlifetime設(shè)置的超大就行,例如999999999