個(gè)人拙見:
1.使用redis緩存商品的數(shù)組信息,首先 如果必要,只緩存商品的部分信息,提高網(wǎng)站的加載速度,比如說商品的列表頁(yè)面,只需要商品的名稱,價(jià)格部分信息,在詳情頁(yè)面因?yàn)槭菃未尾樵兯俣冗€是比較快的.
2.相對(duì)來說,商城不做一些高并發(fā),秒殺等業(yè)務(wù),緩存信息如上回答,用文件做緩存相對(duì)比較理想.
3.redis如果做整個(gè)頁(yè)面的數(shù)據(jù)緩存用的還是相對(duì)來說比較少的
ALTER TABLE admin
AUTO_INCREMENT = 0 ;
html部分:
<html>
<body>
<form action="http://demo.com" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
php部分:
<?php
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}else {
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
結(jié)果:
本地是否有搭建環(huán)境(Apache+php or Nginx+php)?
phpstorm + xdebug
xdebug 可以用斷點(diǎn)調(diào)試 也可以輸出日志分析 phpstorm有分析工具
return this;
你先試直接用curl訪問這個(gè)https地址, 看看報(bào)錯(cuò)信息.
$ch = curl_init('https://...:/xx/xx/xx?wsdl');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_VERBOSE => 1,
CURLOPT_CERTINFO => 1,
]);
curl_exec($ch);
看看是不是openssl.cafile(php.ini中)設(shè)置有問題.
如果是這個(gè)問題, 到https://curl.haxx.se/docs/cae... 這兒下載文件,
設(shè)置curl_setopt(CURLOPT_CAINFO, '下載的.pem文件')
或者直接設(shè)置openssl.cafile(php.ini中)
另外, 極有可能你的字段沒寫對(duì), 是http, 不是https
// 重寫默認(rèn)的notAllowedHandler
$container['notAllowedHandler'] = function ()
{
return function ($req, $res, $allowMethod) {
return $res->withJson([
"status" => 0,
"info" => "請(qǐng)求方法錯(cuò)誤",
"data" => $allowMethod
]);
};
};視頻直播這塊一沒這么容易,一般會(huì)用第三方框架,也不會(huì)用PHP,比如用C++或者go,你可以用第三方直播云平臺(tái),比如阿里云和七牛云等直播平,不僅穩(wěn)定而且流量費(fèi)用比自己做低 ,你費(fèi)了很大勁做出來還不穩(wěn)定,得不償失,現(xiàn)在很多直播平臺(tái)都是用的第三方云,包括IM
不用chrome就ok, 不然的話就不要用這后綴了
平常如果是自己寫的話,一般javascript會(huì)攜帶一個(gè)callback參數(shù)傳給服務(wù)器端php,而php響應(yīng)jsonp的話一般是如下格式:
echo $callback.'('.$data.');';
在laravel中,withCallback方法它里面只有一行,參數(shù)也就是客戶端callback名,是一個(gè)字符串而已,也就是你看到的$request->input('callback'):
return $this->setCallback($callback);
而setCallback方法如下:
public function setCallback($callback = null)
{
if (null !== $callback) {
// partially taken from http://www.geekality.net/2011/08/03/valid-javascript-identifier/
// partially taken from https://github.com/willdurand/JsonpCallbackValidator
// JsonpCallbackValidator is released under the MIT License. See https://github.com/willdurand/JsonpCallbackValidator/blob/v1.1.0/LICENSE for details.
// (c) William Durand <william.durand1@gmail.com>
$pattern = '/^[$_\p{L}][$_\p{L}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{200C}\x{200D}]*(?:\[(?:"(?:\\\.|[^"\\\])*"|\'(?:\\\.|[^\'\\\])*\'|\d+)\])*?$/u';
$reserved = array(
'break', 'do', 'instanceof', 'typeof', 'case', 'else', 'new', 'var', 'catch', 'finally', 'return', 'void', 'continue', 'for', 'switch', 'while',
'debugger', 'function', 'this', 'with', 'default', 'if', 'throw', 'delete', 'in', 'try', 'class', 'enum', 'extends', 'super', 'const', 'export',
'import', 'implements', 'let', 'private', 'public', 'yield', 'interface', 'package', 'protected', 'static', 'null', 'true', 'false',
);
$parts = explode('.', $callback);
foreach ($parts as $part) {
if (!preg_match($pattern, $part) || in_array($part, $reserved, true)) {
throw new \InvalidArgumentException('The callback name is not valid.');
}
}
}
$this->callback = $callback;
return $this->update();
}
顯然,他幫我們做了callback參數(shù)的合法性過濾, 最后的update會(huì)做相關(guān)的響應(yīng)頭設(shè)置,其實(shí)和平常一樣的,并不神秘。如果不明白我在說什么,可以去了解下jsonp,以及php該如何響應(yīng)jsonp請(qǐng)求,相信會(huì)有不錯(cuò)的收獲。
好像解決了,加了
`ob_clean();
flush();`,就好了,什么清除緩沖區(qū),刷新緩沖區(qū)。不太懂
404錯(cuò)誤, 檢查后端路由
首先我不清楚為什么要用這個(gè)函數(shù),還有你的程序?yàn)槭裁葱枰@個(gè)函數(shù),難道它是不可替代的嗎,而且官方文檔說的很明白,這個(gè)函數(shù)是極其危險(xiǎn)的
其次,再說說靜態(tài)變量這個(gè)東西,它是存在于函數(shù)作用域內(nèi)的,也就是棧里面,一般的函數(shù)內(nèi)變量在函數(shù)結(jié)束后會(huì)釋放,但是靜態(tài)變量卻不會(huì)。就是說,下次再調(diào)用這個(gè)函數(shù)的時(shí)候,該變量的值會(huì)保留下來,就像你的第一個(gè)函數(shù)。
之后,看你的第二個(gè)函數(shù),eval('static $c;'),我們說到了作用域這個(gè)東西,看看手冊(cè)里怎么說的
這樣應(yīng)該明白了吧,你第二次調(diào)用這個(gè)函數(shù)的時(shí)候相當(dāng)于這個(gè)靜態(tài)變量又被重新定義了一次
config配置
php 框架的單機(jī)并發(fā) 200-500 是極限,多了可以做負(fù)載均衡,不斷堆服務(wù)器。
在這個(gè)基礎(chǔ)上改造,基本都是大改,因?yàn)樾枰褦?shù)據(jù)庫(kù)和文件IO 操作改成異步。
或者可以使用swoole reactphp 這類的異步框架。
我們最后的方案是 轉(zhuǎn)node ,原生支持異步,單機(jī)并發(fā)可以達(dá)到2W以上~
cli 模式下不需要重啟,apache 的話應(yīng)該都是要的
建議你,
首先打開 php.ini 搜索 display_errors,把 Off 修改為 On,開啟 php 錯(cuò)誤提示
看看具體報(bào)什么錯(cuò)誤,再去解決。
比如存在的問題:composer沒有安裝依賴,目錄沒有寫權(quán)限,開啟了錯(cuò)誤提示,看看錯(cuò)誤再說
查詢每個(gè)分類的前5條數(shù)據(jù),然后合并數(shù)組
北大青鳥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)開發(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ū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。