一般來(lái)說(shuō)是連表快一點(diǎn),但是要注意的是連表的索引要做好,不然數(shù)據(jù)量一大反而會(huì)比循環(huán)查詢(xún)慢
/^[1-9]\d*(,[1-9]\d*)?$/
換一個(gè)編輯器吧,建議使用ps,zs或者vs
rules是Rule的列表,所以你可以放多個(gè)規(guī)則不同的Rule
快遞100 付費(fèi)
Docker的四種網(wǎng)絡(luò)模式:
當(dāng)Docker進(jìn)程啟動(dòng)時(shí),會(huì)在主機(jī)上創(chuàng)建一個(gè)名為docker0的虛擬網(wǎng)橋,此主機(jī)上啟動(dòng)的Docker容器會(huì)連接到這個(gè)虛擬網(wǎng)橋上。虛擬網(wǎng)橋的工作方式和物理交換機(jī)類(lèi)似,這樣主機(jī)上的所有容器就通過(guò)交換機(jī)連在了一個(gè)二層網(wǎng)絡(luò)中。
從docker0子網(wǎng)中分配一個(gè)IP給容器使用,并設(shè)置docker0的IP地址為容器的默認(rèn)網(wǎng)關(guān)。在主機(jī)上創(chuàng)建一對(duì)虛擬網(wǎng)卡veth pair設(shè)備,Docker將veth pair設(shè)備的一端放在新創(chuàng)建的容器中,并命名為eth0(容器的網(wǎng)卡),另一端放在主機(jī)中,以vethxxx這樣類(lèi)似的名字命名,并將這個(gè)網(wǎng)絡(luò)設(shè)備加入到docker0網(wǎng)橋中??梢酝ㄟ^(guò)brctl show命令查看。
bridge模式是docker的默認(rèn)網(wǎng)絡(luò)模式,不寫(xiě)--net參數(shù),就是bridge模式。使用docker run -p時(shí),docker實(shí)際是在iptables做了DNAT規(guī)則,實(shí)現(xiàn)端口轉(zhuǎn)發(fā)功能。可以使用iptables -t nat -vnL查看。
bridge模式如下圖所示:
如果啟動(dòng)容器的時(shí)候使用host模式,那么這個(gè)容器將不會(huì)獲得一個(gè)獨(dú)立的Network Namespace,而是和宿主機(jī)共用一個(gè)Network Namespace。容器將不會(huì)虛擬出自己的網(wǎng)卡,配置自己的IP等,而是使用宿主機(jī)的IP和端口。但是,容器的其他方面,如文件系統(tǒng)、進(jìn)程列表等還是和宿主機(jī)隔離的。
Host模式如下圖所示:
這個(gè)模式指定新創(chuàng)建的容器和已經(jīng)存在的一個(gè)容器共享一個(gè) Network Namespace,而不是和宿主機(jī)共享。新創(chuàng)建的容器不會(huì)創(chuàng)建自己的網(wǎng)卡,配置自己的 IP,而是和一個(gè)指定的容器共享 IP、端口范圍等。同樣,兩個(gè)容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng)、進(jìn)程列表等還是隔離的。兩個(gè)容器的進(jìn)程可以通過(guò) lo 網(wǎng)卡設(shè)備通信。
Container模式示意圖:
使用none模式,Docker容器擁有自己的Network Namespace,但是,并不為Docker容器進(jìn)行任何網(wǎng)絡(luò)配置。也就是說(shuō),這個(gè)Docker容器沒(méi)有網(wǎng)卡、IP、路由等信息。需要我們自己為Docker容器添加網(wǎng)卡、配置IP等。
Node模式示意圖:
更多請(qǐng)自行閱讀: http://www.a-site.cn/article/...
PHP中float轉(zhuǎn)int是將小數(shù)位全部棄掉,(0.1+0.7)*10的結(jié)果內(nèi)部的表示其實(shí)是類(lèi)似7.9999999999999991118…,于是強(qiáng)行轉(zhuǎn)換為int值時(shí),結(jié)果為7。
如果實(shí)在要轉(zhuǎn),最好使用round,進(jìn)行四舍五入避開(kāi)浮點(diǎn)數(shù)精度的坑
echo (int)((0.7+0.1)*10); // 輸出7
echo round((0.7+0.1)*10); // 輸出8
注意:永遠(yuǎn)不要相信浮點(diǎn)數(shù)結(jié)果精確到了最后一位,也永遠(yuǎn)不要比較兩個(gè)浮點(diǎn)數(shù)是否相等。如果確實(shí)需要更高的精度,應(yīng)該使用任意精度數(shù)學(xué)函數(shù)或者 gmp
函數(shù)。
1、你需要運(yùn)行一次netstat -napo,netstat 用來(lái)查看當(dāng)前系統(tǒng)各種網(wǎng)絡(luò)程序的連接情況,你會(huì)看到輸出的結(jié)果上方有相應(yīng)的表頭,代表了每列內(nèi)容的主題或者說(shuō)類(lèi)別
2、其次你沒(méi)有看到相關(guān)的表頭,是因?yàn)槟阌昧薵rep "php-fpm",根據(jù)關(guān)鍵字去過(guò)濾不相關(guān)的信息,過(guò)濾了代表每列主題的表頭
3、關(guān)于輸出的結(jié)果,建議查看命令的說(shuō)明 http://www.man7.org/linux/man...
/^(\d+\.{1})/
proxyTable: {
'/api': {
target: 'http://test.yang.com',
changeOrigion: true,
pathRewrite: {
'^/api': '/api'
}
}
},
這個(gè)寫(xiě)法 /api 代表 http://test.yang.com
this.$http.get('/api/radio.php') 表示 this.$http.get('http://test.yang.com/radio.php')
你的接口是 http://test.yang.com/api/radi... 當(dāng)然是404
你可以先這么寫(xiě)this.$http.get('http://test.yang.com/api/radi...') 測(cè)試一下 他會(huì)提示你跨域了
而不是404 然后在proxyTable 里繼續(xù)配置
nginx 不懂 一般瀏覽器能打開(kāi)訪(fǎng)問(wèn)到就是可以的
原因:浮點(diǎn)數(shù)的精度問(wèn)題。
注意:
向下取整,即:12910.9
會(huì)被轉(zhuǎn)換為 12910
<?php
var_dump(intval(12910.9));
// 輸出
// int(12910)
浮點(diǎn)數(shù)精度
看如下執(zhí)行結(jié)果:
我們知道:$receive_money
值小于 12911
總結(jié):所以,最后 $receive_money
轉(zhuǎn)換為整型時(shí),向下取整,結(jié)果為:12910
參考:
這是由于浮點(diǎn)數(shù)的二進(jìn)制表示形式?jīng)Q定的。
看如下示例:
我們看到第 9 行代碼 float(12911)
擴(kuò)展整數(shù)位之后,轉(zhuǎn)換成整型表示:int(129109999)
。
然后,我們對(duì)比了 float(12911)
跟 int(12911)
在二進(jìn)制上的差別。
是不是發(fā)現(xiàn)了什么?(二進(jìn)制的最后一位)這是 PHP-bug
么?當(dāng)然不是。
而且我們同樣也注意到了第 8 行代碼輸出結(jié)果為:float(129110000)
,這又是為什么呢?
為什么不是 float(129109999)
呢?
我們看一下 PHP
源碼中浮點(diǎn)數(shù)是什么:
如圖:php-float
等于 c-double
我想如下幾個(gè)問(wèn)題可以解決上述的疑問(wèn):雙精度浮點(diǎn)數(shù)
的二進(jìn)制形式是如何表示的呢? 請(qǐng)參考:wikipedia-雙精度浮點(diǎn)數(shù)
浮點(diǎn)數(shù)是如何處理乘法運(yùn)算的呢? 請(qǐng)參考:wikipedia-浮點(diǎn)數(shù)的乘法和除法
如果上邊兩個(gè)問(wèn)題不愿深究,可以直接參考鳥(niǎo)哥的一篇博客:PHP浮點(diǎn)數(shù)的一個(gè)常見(jiàn)問(wèn)題的解答
以上為個(gè)人理解,如果錯(cuò)誤之處,請(qǐng)指出。
如果評(píng)論里的邏輯是對(duì)的。應(yīng)該做有改無(wú)增的操作,而id不同的時(shí)候你并沒(méi)有push。
// 簡(jiǎn)化版本
var miniCartListArr = []
var miniId = {}
function dataHandler (opt) {
if (miniId[opt.skuId] !== undefined) {
// 有改
miniCartListArr[miniId[opt.skuId]] = opt
} else {
// 無(wú)增
// 存 id:索引,方便下次有改
miniId[opt.skuId] = miniCartListArr.length
miniCartListArr.push(opt)
}
}
arr2 = [...arr1]
這么寫(xiě)并不是個(gè)真的深拷貝。
var arr1 = [{name:1}]
arr2 = [...arr1]
arr2[0].name = 2
arr1[0].name // 1
arr1 === arr2 //false
arr1[0] === arr2[0] //true
不能以你這個(gè)成功的回調(diào)函數(shù)作為支付完成的標(biāo)志,這個(gè)函數(shù)里面你要發(fā)請(qǐng)求給你的后端確認(rèn)用戶(hù)是否已經(jīng)完成支付,完成就跳轉(zhuǎn)支付成功后的頁(yè)面,后端會(huì)把相應(yīng)的訂單狀態(tài)改變的,你這邊的數(shù)據(jù)通過(guò)接口請(qǐng)求自然也就變化了。
去看看是不是開(kāi)啟了vhosts,/etc/httpd/conf.d/httpd-vhosts.conf
時(shí)序問(wèn)題吧,你得模擬正常登錄流程,先get訪(fǎng)問(wèn)一下登錄頁(yè),獲取到cookie,然后再獲取驗(yàn)證碼,最后提交
稍?xún)?yōu)化了一點(diǎn),按你的算法,有n個(gè)元素的數(shù)組,要循環(huán)
n * n * in_array里的次數(shù),in_array內(nèi)部也是循環(huán)
var arr = [1, 2, 5, 6, 7];//如果這個(gè)數(shù)組不是有序數(shù)組,哪還要先加排序
var len =arr.length
let result=[]
let count=0
for(let a=0;a<len;a++){
let max = arr.pop()
let newlen = arr.length
for(let i=0;i<newlen-1;i++){
if(arr[i]+arr[i+1]> max){
break;
}
for(let j=i;j<newlen-1;j++){
let plus = arr[i]+arr[j+1]
count++
if(plus>max){
break;
}
if(plus==max){
result.push([max,arr[i],arr[j+1]])
}
}
}
}
console.log(result)//輸出結(jié)果
console.log(count)//輸出總循環(huán)次數(shù),
回復(fù)里說(shuō)的好,我沒(méi)有考慮負(fù)數(shù)的情況,如果要考慮負(fù)數(shù),哪把最大數(shù)pop出來(lái),就不行了,只能重新維護(hù)一條新數(shù)組,用來(lái)枚舉所有值,修改如下
var arr = [-8, -1, 1, 2, 5, 6, 7];//如果這個(gè)數(shù)組不是有序數(shù)組,哪還要先加排序
var len =arr.length
var arr1 = [...arr] //復(fù)制一條新數(shù)組
let result=[]
let count=0
for(let a=0;a<len;a++){
let max = arr1.pop()// 從新數(shù)組中枚舉各個(gè)值。
let newlen = arr.length
for(let i=0;i<newlen-1;i++){
if(arr[i]+arr[i+1]> max){
break;
}
for(let j=i;j<newlen-1;j++){
let plus = arr[i]+arr[j+1]
count++
if(plus>max){
break;
}
if(plus==max){
result.push([max,arr[i],arr[j+1]])
}
}
}
}
console.log(result)//輸出結(jié)果
console.log(count)//輸出總循環(huán)次數(shù),
輸出
[[7, 1, 6], [7, 2, 5], [6, -1, 7], [6, 1, 5], [5, -1, 6], [1, -1, 2], [-1, -8, 7]]
thinkphp內(nèi)置模板引擎的解析定界符,內(nèi)置模板引擎的普通模板標(biāo)簽?zāi)J(rèn)以{和}作為開(kāi)始和結(jié)束標(biāo)記,可通過(guò)配置參數(shù)TMPL_L_DELIM和TMPL_R_DELIM分別更改模板引擎普通標(biāo)簽開(kāi)始和結(jié)束標(biāo)記
請(qǐng)求接口不存在啊
如果你的php是用brew安裝的那么按照樓上說(shuō)的使用brew安裝memcache;如果是手動(dòng)編譯安裝的那么我不確定brew安裝是否可行。如果你的memcache是手動(dòng)安裝的,你在安裝的時(shí)候要先掛起phpize和configure
問(wèn)題的問(wèn)題
我理解到的問(wèn)題(直接看這里吧):
端: 后端(題主開(kāi)發(fā)的),小程序前端,第三方接口,
場(chǎng)景:第三方接口數(shù)據(jù)直接提供給前端,但是因?yàn)樾枰灻?,考慮安全問(wèn)題,不能直接給前端,所以經(jīng)過(guò)了你所開(kāi)發(fā)的后端(PHP)簽名,再轉(zhuǎn)給小程序前端。
問(wèn)題是這樣嗎?是的話(huà)我再回答,不是那就呃,呃
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。