鍍金池/ 問答/ PHP問答
祈歡 回答
  1. php-fpm已經從php5.4默認轉正了,It's official. PHP-FPM is no longer marked as "experimental" as of PHP 5.4.0RC2.
  2. php70w應該是對應的源不同引起的,centos 7.2安裝php
  3. 可以使用一鍵安裝包,如lnmp,oneinstack,phpstudy,docker等
互擼娃 回答

解決了 ,是密碼寫上了 ,而數據庫沒有寫上

款爺 回答

寫個腳本定時跑跑?或者直接給一個SiteMap讓百度和谷歌的蜘蛛多過來看看?

安淺陌 回答

已解決,是虛擬機掛載共享目錄的問題;
上傳到虛擬機,效果不到0.2s
圖片描述

若相惜 回答

1.一天100w的數據,有效用戶是多少?一個用戶需要存儲多少數據?
2.這張表是只寫入后續(xù)統(tǒng)計使用?還是寫查都在一起?如果,寫查都在一起,索引建好,效率也不會太低,but,一天100w,qps也不會低吧?單庫單表撐不住吧

擱淺 回答
還要告訴內核這個參數是引用傳遞
ZEND_BEGIN_ARG_INFO_EX(arginfo_krsort, 0, 0, 1)
    ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
    ZEND_ARG_INFO(0, sort_flags)
ZEND_END_ARG_INFO()

#define ZEND_ARG_INFO(pass_by_ref, name)
不歸路 回答
start /b laravel-echo-server start  >websocket_log.txt & 

改成這樣試試,注意后面的 &

毀憶 回答

mode負責取數據(一般是原始數據)
controller從model拿到數據,然后處理成view展示需要的

controller一般負責業(yè)務邏輯處理 所以正則處理放到controller里面好一點
冷咖啡 回答

1.前端不進行跨域,叫后臺進行修改
2.使用JSONP 前端進行跨域 -- 此時也需要后端進行配合
jsonP方式可參考:https://www.cnblogs.com/xcxc/...

神經質 回答

一個設計良好的模塊,拿給別人用,那人需要一些新功能,應該怎么用呢,是修改已有模塊代碼?還是用別的手段進行擴展?開閉原則就是你的模塊要是足夠牛逼,就不會逼著別人改你的源碼╮(╯_╰)╭ 在使用足夠牛逼的模塊時,要通過擴展來實現(xiàn)自己的功能而不是改人家代碼。

單一職責就好理解了,對于一個一個的組件來說,多功能是沒必要的,沙發(fā)是沙發(fā),床是床,沙發(fā)床只能是權宜之計。

兩者之間相同的地方就是“如無必要,勿增實體”,沒有必要改代碼就不要改代碼,沒必要加功能就不要加功能。通過組件之間的拼接組合實現(xiàn)整體功能,這樣就能實現(xiàn)“高內聚,低耦合”的理想了。

當然這倆原則某種角度來說也是矛盾的,模塊如何才能足夠牛逼?大而全就可以了,然而大而全顯然和單一職責沖突,所以這里就又有個權衡的問題,不過不用擔心,“權衡”這種事情是無處不在的,“選擇比努力重要”說的就是權衡的重要性。

安于心 回答

從現(xiàn)象上看,你那個字符串里面應該有隱藏的控制字符導致的json解析錯誤,你的字符串長度,肉眼點出來的和dump出來的量對不上,你貼一下你結果的文本來,你先嘗試trim之后再dump一下

硬扛 回答

推薦分開來,原因如下
1.如果是放在一起后更改其中的一個字段,你就要把所有的字段都查出來然后修改其中的一部分再組裝回去,代碼會很繁瑣,容易出bug
2.如果放在一起,當你需要給其中的字段加索引的時候怎么加?如果一起加的話索引字段的長度會很長,這樣會嚴重影響效率.
3.你的這幾個字段的字段類型顯然是不一樣的。
所以還是一個屬性一個字段。如果你嫌字段太多可以分表,把常用的字段放到一張表,把不常用的字段放到另一張表。不過你這就幾個字段沒必要的。

怣人 回答

判斷下 d 是否存在

for(j=0;j<arr[2].length;j++){
              str+='<div class="question1">';
              str+='<p>'+arr[2][j].question+'</p>';
               str+='<ul>';
               str+='<li class="jjjj" value="A">'+arr[2][j].answera+'</li>';  
               str+='<li class="jjjj" value="B">'+arr[2][j].answerb+'</li>';
               str+='<li class="jjjj" value="C">'+arr[2][j].answerc+'</li>';
               if(arr[2][j].answerd){
                   str+='<li class="jjjj" value="D">'+arr[2][j].answerd+'</li>'; 
               } 
               str+='</ul>';
               str+='</div>';   

        }
懶豬 回答
Db::table(['fa_question '=>'a','think_role'=>'b'])
    ->field('a.id, a.title, a.create_time, a.is_solve, count(b.qid) as answer_count)
    ->where(' a.id=b.qid and a.is_solve=0')
    ->group('b.qid')
    ->order('answer_count desc')
    ->limit(6)
    ->select()

附上手冊,多看看手冊https://www.kancloud.cn/manua...

擱淺 回答

你說的對方給你一個session,需要自己記錄一下session,然后每次提交別的api請求的時候需要攜帶

function doPost($url, $data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $data = curl_exec($ch);
    curl_close($ch);
    return json_decode($data, true);
}

$url  = 'http://xxx.com/api/login';
$data = [
    'email'    => 'abc@abc.com',
    'password' => '123456'
];
$res  = doPost($url, $data);
// 判斷$res結果 這一部分需要看具體api文檔
if($res['errcode'] == 0){
    // 記錄session
    $session = $res['data']['session'];
}
// 下次請求別的接口的時候攜帶一些參數,具體看接口文檔,有的可能要求是放到header頭信息中,有的可能要求是直接作為一個參數傳遞
爛人 回答

你可以使用 all 方法以 數組 形式獲取到所有輸入數據:

$input = $request->all();

然后 dd($input) 看下里面的結構就明白了。