while($sRow = fgets($oFile,1024))
{
if($sRow == "\n")
break;
echo $sRow;
}
假設(shè)我要做幾道菜:
以前我的做法:
我要做麻婆豆腐,先洗豆腐,然后找到豆瓣醬,把豆瓣醬炸出香味,然后我想到還需要辣椒,我就去切辣椒,切完辣椒放進(jìn)去后,我發(fā)現(xiàn)還需要姜蒜,我去切了姜蒜,然后和燒好的豆瓣醬一起煎出香味,倒入豆腐翻兩圈開(kāi)始燜。
燜好麻婆豆腐之后,我要素炒小青菜。
我立即去洗小青菜,然后燒好油后發(fā)現(xiàn)還少了姜蒜,我就去切姜蒜,一陣手忙腳亂,小青菜炒好了。
如此重復(fù)進(jìn)行炒西紅柿炒蛋。
有了SOA之后:
我先剁好一小碗姜末;
我先剁好一小碗蒜末;
先切好青菜
先找好豆瓣醬
先洗好豆腐
先切好西紅柿
然后,我想要什么服務(wù),直接取。(嗯,這里可能來(lái)說(shuō)是一個(gè)人的SOA)
后來(lái),我為了想提高效率,叫我老婆來(lái)一起幫忙準(zhǔn)備這些材料,后面,突然有10個(gè)朋友來(lái)我家,要做的菜式更多了,然后我叫幾個(gè)朋友一起幫準(zhǔn)備各種材料。
這里面的思想還可以發(fā)散。后面的不想說(shuō)了。
我想了一下,再補(bǔ)充一下
對(duì)于第一種情況,假設(shè)我每種菜要做10份,那么再叫來(lái)9個(gè)人和我一起重復(fù)上面的事情(多個(gè)服務(wù)器部署同一套系統(tǒng))
而后面有了SOA,我每一個(gè)人就只關(guān)注自己的具體邏輯,比如切青菜的專門切青菜,洗青菜的專門洗青菜等等,對(duì)于廚師(用戶),想要做一份西紅柿炒蛋,那他就去拿西紅柿和打好的蛋就好了,如果想做個(gè)西紅柿燜大腸,那么他就取取切好的西紅柿和切好的大腸就好了,分工明確,各司其職。
<?php
print_r($_FILES);
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="a[]">
<input type="file" name="a[]">
<input type="submit" value="123">
</form>
</body>
</html>
這種情況下可以做到,這也是同鍵POST的方法,輸出如下
Array
(
[a] => Array
(
[name] => Array
(
[0] => WX20180507-164412.png
[1] => 4271525682162_.pic_hd.jpg
)
[type] => Array
(
[0] => image/png
[1] => image/jpeg
)
[tmp_name] => Array
(
[0] => /private/var/folders/32/85t9_nfn3hl27vm4yxb89c8m0000gn/T/php0pf4YH
[1] => /private/var/folders/32/85t9_nfn3hl27vm4yxb89c8m0000gn/T/phpz83Uwi
)
[error] => Array
(
[0] => 0
[1] => 0
)
[size] => Array
(
[0] => 52048
[1] => 409694
)
)
)
為方便用戶不是每次都顯示,輸錯(cuò)密碼幾次就顯示了,記得數(shù)據(jù)庫(kù)里有相應(yīng)的配置選項(xiàng),可以控制驗(yàn)證碼是不是每次都顯示.
查看一下thinkox_config里name='VERIFY_OPEN'的值,清一下緩存試試.
簽名時(shí)加上signer.update(data,'utf8');
直接帶參數(shù)便可,注意alias 后面需要留空格。如下
alias testserver='php /Applications/apache/testserver.php '
testserver abc你選擇圖片插入的時(shí)候,圖片已經(jīng)通過(guò)接口上傳了,后臺(tái)返回給你圖片的路徑,就是你圖片中的/img/bVbcfKU
抱歉,這是個(gè)垃圾問(wèn)題 ?。』乜雌饋?lái)自己都掩面 …
return 退出該函數(shù)的執(zhí)行,退回到函數(shù)的調(diào)用處,退回到函數(shù)的調(diào)用處,退回到函數(shù)的調(diào)用處 !
該用 exit
開(kāi)發(fā)環(huán)境下用webpack-dev-server可以跨域是配了proxy Table吧。構(gòu)建之后node環(huán)境沒(méi)了,它也就不能用了。
那就還是cors跨域唄,需要服務(wù)端做設(shè)置。
另外,代碼能不能運(yùn)行跟接口能不能跨域是兩回事。
chrome插件-wappalyzer,當(dāng)然并不會(huì)百分百地顯示全部應(yīng)用的技術(shù)
/**
* PHP將網(wǎng)頁(yè)上的圖片攫取到本地存儲(chǔ)
* @param $imgUrl 圖片url地址
* @param string $saveDir 本地存儲(chǔ)路徑 默認(rèn)存儲(chǔ)在當(dāng)前路徑
* @param null $fileName 圖片存儲(chǔ)到本地的文件名
* @return mix
*/
function crabImage($imgUrl, $saveDir='./', $fileName=null){
if(empty($imgUrl)){
return false;
}
//獲取圖片信息大小
$imgSize = getImageSize($imgUrl);
if(!in_array($imgSize['mime'],array('image/jpg', 'image/gif', 'image/png', 'image/jpeg'),true)){
return false;
}
//獲取后綴名
$_mime = explode('/', $imgSize['mime']);
$_ext = '.'.end($_mime);
if(empty($fileName)){ //生成唯一的文件名
$fileName = uniqid(time(),true).$_ext;
}
//開(kāi)始攫取
ob_start();
readfile($imgUrl);
$imgInfo = ob_get_contents();
ob_end_clean();
if(!file_exists($saveDir)){
mkdir($saveDir,0777,true);
}
$fp = fopen($saveDir.$fileName, 'a');
$imgLen = strlen($imgInfo); //計(jì)算圖片源碼大小
$_inx = 1024; //每次寫入1k
$_time = ceil($imgLen/$_inx);
for($i=0; $i<$_time; $i++){
fwrite($fp,substr($imgInfo, $i*$_inx, $_inx));
}
fclose($fp);
return array('file_name'=>$fileName,'save_path'=>$saveDir.$fileName);
}
$url = 'https://mmbiz.qlogo.cn/mmbiz/7WQtTI9h56hgvOH8J0Xp5v97cDNOxf94vq0NdNOhZmb2ZiaJLfwd2U8gNoEvTQXdWlRPOuibkkSebexmR2epE0pQ/0?wx_fmt=gif';
//$url = 'http://www.phpernote.com/images/logo.gif';
//$url = 'http://avatar.csdn.net/5/3/6/1_u014236259.jpg';
var_dump( crabImage($url) );echo explode('.',$_SERVER['SERVER_NAME'])[1];使用i18n插件
gethostbyaddr — 獲取指定的IP地址對(duì)應(yīng)的主機(jī)名
select product.name as product_name, category.name as category_name from product left join category on product.category_id = category.id
我覺(jué)得這不是一個(gè)壞問(wèn)題啊,為什么會(huì)有那么多人踩呢?不要急著踩別人,你會(huì)算的話,你出來(lái)給我走兩步看看?
首先,我們要明確兩個(gè)概念:dpi和ppi,dpi是dot per inch的縮寫,ppi是pixel per inch的縮寫,意思就是“每英寸多少像素”。在顯示器上,dpi就等于ppi,所以我們下面就都以dpi為例。
那么我們的顯示器的dpi怎么算呢?首先,你可以通過(guò)顯示器的設(shè)置,查看一下你當(dāng)前的分辨率是多少,比如我現(xiàn)在正用的這臺(tái)顯示器,它的分辨率是2560x1440,根據(jù)勾股定理(裝逼的話也可以叫畢達(dá)哥拉斯定理,愛(ài)國(guó)人士稱為勾股定理,雖然實(shí)際上勾股從來(lái)就不是一個(gè)定理,而畢達(dá)哥拉斯是真真正正證明了這個(gè)定理的),我們可以算出對(duì)角線是2560的平方加上1440的平方然后再開(kāi)根號(hào),得到2937.20956,那么因?yàn)檫@臺(tái)顯示器大約是27英寸的,所以我們可以用2937.20956除以27英寸,得到108.7855,這就是這個(gè)顯示器的dpi了。
接下來(lái)的事情就好辦了,假設(shè),你有一張jpg圖片或者png圖片,它的寬是1088像素,用這個(gè)值除以上面的dpi,就可以得到10英寸這個(gè)數(shù)值,接下來(lái),我們?cè)侔延⒋鐡Q算成厘米,因?yàn)橐挥⒋绲扔?code>2.54厘米,所以這張圖片的寬度就是25.4厘米,254毫米,高度的計(jì)算類似。
js求解接下來(lái),這位大兄弟問(wèn)怎么樣用Javascript獲得這個(gè)尺寸?
那么,首先我們必得要先知道如何用Javascript獲得dpi??梢赃@樣做:我們先造出一個(gè)虛擬div,設(shè)定它的寬和高都是1in,也就是1英寸,注意是1in而不是1px哦,不要搞錯(cuò)了。比如這樣:
<div id="dpi" style="height: 1in; width: 1in; position: absolute; left: -100%; top: -100%;"></div>
然后我們?cè)儆?code>js算一下它的像素寬度就得到了這臺(tái)顯示器的dpi:
function getDPI() {
return document.getElementById("dpi").offsetHeight;
}
得到了dpi,聰明如你一定能猜出如何計(jì)算圖片的尺寸了吧?
我覺(jué)得就是讓協(xié)程用起來(lái)更加方便了,而使用 yield 實(shí)現(xiàn)起來(lái)是相當(dāng)晦澀的。
yield 的實(shí)現(xiàn)參見(jiàn)鳥(niǎo)哥博客: 在PHP中使用協(xié)程實(shí)現(xiàn)多任務(wù)調(diào)度
性能可能會(huì)有影響,因?yàn)楸緛?lái)是需要直接執(zhí)行點(diǎn)擊事件對(duì)應(yīng)的方法就可以了,你現(xiàn)在是直接觸發(fā)點(diǎn)擊事件,然后間接的執(zhí)行對(duì)應(yīng)的方法。不過(guò)在我看來(lái)影響可能比較小。性能可能直觀上看不出來(lái)。最好的方法是調(diào)用事件對(duì)應(yīng)的方法。而你這個(gè)程序沒(méi)有,那就調(diào)用form的submit方法
$('form').submit()你拿到token后總要去干點(diǎn)什么吧,好比去請(qǐng)求一個(gè)鏈接,如果token失效那不就返回失效的錯(cuò)誤了,知道這個(gè)錯(cuò)誤再去請(qǐng)求新的token就是。但是說(shuō)到底都是人家只允許一個(gè)用戶登錄,你再請(qǐng)求新的就又把A的又踢掉了。
完全同意@lcp0578的看法。
算法和數(shù)據(jù)結(jié)構(gòu)和語(yǔ)言無(wú)關(guān)。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(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
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(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é)及管理工作。
浪潮集團(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)突出、引人入勝。
精通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)師。