鍍金池/ 問答/ PHP問答
枕頭人 回答

二進(jìn)制異或交換,任何語言都是一樣的

clipboard.png

參考https://blog.csdn.net/zxm1306...

故人嘆 回答

檢測(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也很快

執(zhí)念 回答

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];

}
`

clipboard.png

傻叼 回答

使用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è)問題的核心是:圖片的長寬比例和展示框的長款比例不同。

調(diào)展示框:
  • 使用類似瀑布流或者照片墻的方式做展示,當(dāng)然這是產(chǎn)品要考慮的事情
調(diào)圖片:
  • 兩個(gè)時(shí)間節(jié)點(diǎn):上傳的時(shí)候和展示的時(shí)候。
  • 兩種方法:圖片的length/width > 展示框的length/width,這時(shí)候以length進(jìn)行縮放,問題是圖片可能不會(huì)鋪滿展示框(1),以width進(jìn)行縮放,圖片會(huì)被裁掉一部分(2)。

綜上,這是一個(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]));
深記你 回答

@fgmy 怎么解決的嗎?我用的鉤子,還是好像參數(shù)不知道怎么傳遞過去額。現(xiàn)在碰到你一樣的問題了

涼薄 回答

不應(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í)啊

離魂曲 回答

$jsonString = '{"result":"薄霧濃云愁永晝。瑞腦消金獸。佳節(jié)又重陽玉枕紗廚半夜涼初透。東籬把酒黃昏后。有暗香盈袖。莫道不消魂簾卷西風(fēng)人比黃花瘦。","status":"SUCCEED","request_id":"90610e3689624420ad024102bfcaac01"}';
$resultArray = json_decode($jsonString,true);
print_r($resultArray['result']);

忘了我 回答

我已用其他方法解決 。找了很久,想了很久,貌似不能直接在驗(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)求正常。