檢測(cè)一個(gè)文件是沒有內(nèi)容,使用filesize()函數(shù)就可以了。
<?php
if(filesize($txt) === 0){
echo '這是一個(gè)空文件';
}
?>
如果非要像你那樣寫,你的判斷邏輯是錯(cuò)的,也不嚴(yán)謹(jǐn),正確的做法是判斷讀取出來的字符串的字節(jié)數(shù),或者和空字符串''比較,而不能用empty()來檢測(cè),因?yàn)?,舉個(gè)例子,如果文件內(nèi)容是一個(gè)數(shù)字0,empty()也會(huì)返回true.
<?php
$content = @file_get_contents($txt);
if($content === false){
echo '無法讀取文件內(nèi)容';
}else{
if(strlen($content) === 0){
echo '文件沒有內(nèi)容';
}else{
echo '不是空文件';
}
}
?>
不存在的值比較多的話,建議采用先新建一個(gè)臨時(shí)表存儲(chǔ)這些數(shù)據(jù),然后再通過sql關(guān)聯(lián)的方式來實(shí)現(xiàn);這樣效率會(huì)更高;當(dāng)然量不多的情況,直接使用in 或者not in也很快
1.觸發(fā)主體不同,一個(gè)時(shí)服務(wù)器端產(chǎn)生的,一個(gè)時(shí)客戶端產(chǎn)生的
2.js可以完全沒有服務(wù)器端就執(zhí)行,比如在本地環(huán)境下,應(yīng)用的場(chǎng)景不同。
`
//$arr是原數(shù)組,temp是臨時(shí)保存數(shù)組
foreach ($arr as $k => $v) {
$temp[$k] = count($v);
}
//對(duì)數(shù)組的個(gè)數(shù)排序,多個(gè)排前面
arsort($temp);
//重新組合組合$res,就是目標(biāo)結(jié)果
foreach ($temp as $k => $v) {
$res[$k] = $arr[$k];
}
`
使用ajaxupload上傳:
new AjaxUpload($("#upload"), {
...
onsubmit: function(file, ext){
if(!(ext && /regEx$/.test(ext)){//regEx是文件的正則匹配
alert("no file selected!");
return false;
}
}
...
}
CDN 一般都是用在靜態(tài)資源上,通常都會(huì)使用子域名。
比如 Server 端域名是:www.xxx.com, 那么 CDN 通常會(huì)用 cdn.xxx.com 這樣的子域名來接入到第三方 CDN 服務(wù)商(阿里云,七牛云,又拍云等),你直接用 Server 服務(wù)器用的域名去接入到 CDN 肯定會(huì)有問題的。
找到你的服務(wù)配置目錄 你應(yīng)該是apache 找到相對(duì)應(yīng)的 httpd/conf/vhost/*.conf 對(duì)應(yīng)的項(xiàng)目配置文件
不行可以全盤搜索一下vhost 目錄
cd /
find -name vhost
$a + $a++
中先執(zhí)行 $a++
, $a被壓到棧中,值為3. 然后執(zhí)行++操作后$a變?yōu)?, 值為4的a被壓到棧中。
然后使用棧中的兩個(gè)值執(zhí)行加法操作,得7
示意圖
$a(3) -> $a(4) -> 加法操作 4 + 3
可以看出前面參與計(jì)算的$a是4, 后面參與計(jì)算的$a是3
在php內(nèi)解決
str_replace("'", "/'", $str);
在js里解決,當(dāng)然如果用戶輸入`的話,那也會(huì)報(bào)錯(cuò)。還是在php處理好
var html = `<select><option>Mike's</option></select>`;
確認(rèn)你的文件編碼
<?php
$data = [
106 =>'一級(jí)供應(yīng)商',
107=>'二級(jí)供應(yīng)商',
];
print_r(array_search('一級(jí)供應(yīng)商',$data));
輸出
106
綜上,這是一個(gè)取舍問題,不是技術(shù)問題。問一問你們的產(chǎn)品更容易解決這個(gè)問題。
開個(gè)腦洞,使用方法(1)然后用AI技術(shù)做輔助,自動(dòng)補(bǔ)全不夠的部分。
祝好。
諾代碼僅針對(duì)An2模型其他模型有空寫一個(gè)通用的
function An2(array $arr)
{
$out = [];
for ($i = 0; $i < count($arr) - 1; $i ++) {
for ($j = $i + 1; $j < count($arr); $j++) {
$out[] = [$arr[$i], $arr[$j]];
$out[] = [$arr[$j], $arr[$i]];
}
}
return $out;
}
print_r(An2([1,2]));
不應(yīng)該是這個(gè)錯(cuò)吧?
你小于2M的能傳?
當(dāng)前這個(gè)錯(cuò)是因?yàn)檎?qǐng)求方法不正確,比如定義的POST,你用GET去請(qǐng)求
主要需要改的配置
php中 post_max_size, upload_max_filesize
nginx中 client_max_body_size
改后需要重啟
a.php
里請(qǐng)求超時(shí)啊
我已用其他方法解決 。找了很久,想了很久,貌似不能直接在驗(yàn)證里面做轉(zhuǎn)化,但是我想到了一個(gè)更好的解決辦法,解決方法如下 :
Laravel 有中間件,我們通常在中間件中做一些過濾 HTTP 請(qǐng)求的操作,但是還能做很多“請(qǐng)求預(yù)處理”操作,如 Laravel 內(nèi)置的 TrimStrings 中間件 和 ConvertEmptyStringsToNull 中間件 ,這兩個(gè)中間件都會(huì)把請(qǐng)求來的參數(shù)做些預(yù)處理操作,具體的使用請(qǐng)看源碼 。
所以 , 我的解決方法就是創(chuàng)建一個(gè) ConvertNumericStringsToInt 中間件 :
class ConvertNumericStringsToInt extends TransformsRequest
{
/**
* The attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
//
];
/**
* Transform the given value.
*
* @param string $key
* @param mixed $value
* @return mixed
*/
protected function transform($key, $value)
{
$transform = false;
if ($key === 'id') {
// 參數(shù)為 id
$transform = true;
} else if (1 === preg_match('/^[a-zA-Z][0-9a-zA-Z]*_id$/', $key)) {
// 參數(shù)為 *_id
$transform = true;
} else if (1 === preg_match('/^[a-zA-Z][0-9a-zA-Z]*Id$/', $key)) {
// 參數(shù)為 *Id
$transform = true;
}
if ($transform) {
if (!is_numeric($value)) {
// 做你自己想做的處理( 如拋出異常 )
}
return is_numeric($value) ? intval($value) : $value;
}
// 返回原值
return $value;
}
}
這樣,只要我們的傳來的參數(shù)是 id , 或者 _id( user_id ),或者 Id( 如userId ),這個(gè)中間件都能檢測(cè),一旦發(fā)現(xiàn)不是數(shù)字 , 就會(huì)被處理( 如拋出異常 ),如果是數(shù)字的話,會(huì)被強(qiáng)轉(zhuǎn)為int類型,我們之后的程序中就不用做任何處理了。
根據(jù)自己的使用情況決定是否將此中間件應(yīng)用都全局中 。
你可以參看這個(gè)鏈接Class:
https://github.com/matyhtf/framework/blob/master/libs/Swoole/Database/MySQL.php
他的做法是每次執(zhí)行完mysql_query后即使檢測(cè)返回值,如果mysql_query返回失敗,則再執(zhí)行一次mysql_connect,這樣可以確保下一次的請(qǐng)求正常。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(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),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
浪潮集團(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)突出、引人入勝。
曾工作于聯(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é)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。