2015年創業中遇到的技術問題:91-100

小雷FansUnion發表於2015-04-18
91.PHP日誌記錄方法.
  error_log("error info");

92.weiphp圖靈機器人bug,需要修改3個地方。

問題描述:
啟用聊天外掛後,發現在微信客戶端上不管輸入什麼內容,回覆的都是預設好的內容,而無法使用圖靈機器人的功能。
 
問題分析:
經過檢視原始碼,發現 Addons\Chat\Model\WeixinAddonModel.class.php 檔案有一處 Bug,
在 function _tuling($keyword) 中,有一個判斷圖靈返回值的地方:
[mw_shl_code=php,true]  if ($result ['code'] > 40000) {
if ($result ['code'] < 40008 && ! empty ( $result ['text'] )) {
$this->replyText ( '圖靈機器人請你注意:' . $result ['text'] );
} else {
return false;
}
}


另外,後面的程式碼中有兩段相同的 case '200000' : 程式碼,可以刪除一段。" 

完成上面的修改,在微信上可以正常進行文字聊天了。但如果輸入 新聞,微信還是會報錯誤。, v+ v: _9 q# O1 n
經過幾處測試,發現是在回覆圖文資訊時,沒有限制圖文的總數量。微信允許一次回覆的圖文條數好象是10,而圖靈返回的新聞是20條,被微信判錯。
因為生成圖文的地方比較多,我在 Application\Home\Model\WeixinModel.class.php 這個檔案裡面統一進行修補:

public function replyNews($articles) {
if ( count ( $articles ) > 10 ) {
array_splice($articles, 10); // 丟掉10條以後的內容,以避免微信報錯
}
$msg ['ArticleCount'] = count ( $articles );
$msg ['Articles'] = $articles;
 
 
$this->_replyData ( $msg, 'news' );
}

參考資料:http://bbs.weiphp.cn/thread-1976-1-1.html

93.圖靈機器人API有3種方式。
a.接入API:
Api 地址: http://www.tuling123.com/openapi/api
請求方式: http get
資料格式: json

b.接入微信公眾平臺:
http://www.tuling123.com/openapi/wechatapi?key= 306839dbd81e291718429191767c2070 

c.QQ機器人:下載圖靈機器人套件

參考:http://tuling123.com/openapi/cloud/access_api.jsp

在weiphp平臺中,原來的例子用的是“接入API”這種方式,“/openapi/api”,
後來因為設定自己的key,把地址改成了“/openapi/wechatapi”,因為覺得我們們是微信公眾平臺嘛,結果坑了好久。

正解:雖說是微信公眾平臺,但是後臺專門通過php介面呼叫圖靈機器人API的,應該用第1種方式。

94.chrome開發者工具 怎麼放到下方。
不知道怎麼搞的,console飄到右邊去了,切換模式之後,直接在新視窗展示了,很不習慣。
解決辦法:長按圖上的按鈕(Dock to main window), 如果不能成功, 多試幾次。
竟然還有這種極其隱含的技巧,尼瑪。

95.weiphp微調研bug。
參考資料:[模組BUG] 微調研等表單 不顯示使用者填寫的姓名和手機號
6樓和16樓
/* $member = get_memberinfo ( $vo ['uid'] );
            if (empty ( $member )) {
                $member = get_followinfo ( $vo ['uid']  );
            }
            $vo ['truename'] = $member ['truename'];
            $vo ['mobile'] = $member ['mobile']; */
           // $member = get_memberinfo ( $vo ['uid'] );
            //if (empty ( $member )) {
                $member = get_followinfo ( $vo ['uid']  );
           // }

Addons\Survey\Controller\AnswerController.class.php
第1處:$member = get_followinfo ( $vo ['uid']  );
使用這種方式獲得$member。
第2處: $vo ['truename'] = $member ['nickname'];

96.滑鼠頻繁的插拔,容易出現問題了。
Windows系統登出或重啟,很可能就好了,遇到好幾次了。

97.微信選單沒有重新整理。
a.取消關注,再次關注。
b.等待,有的時候,選單怎麼弄,也沒有及時重新整理。只能耐心等待了。
通過微信除錯工具,去獲得微信選單,才發現選單已經修改成功了。
但是,通過微信公眾號關注獲得的選單,卻不是最新的。
鬱悶。

98.Apache複製目錄有問題。
import org.apache.commons.io.FileUtils;
Apache的copyDirectoryToDirectory(src,to);
"C://js","C://js2/",把js這個目錄複製到js2下面,變成了C://js2/js.

import jodd.io.FileUtil;
Jodd的方法以及aspectj的複製檔案的方法,就是需要的。
把js目錄下的所有檔案,複製一份到js2下。
而不是在js2下有個目錄叫js。

99.md5密碼破解。
從網上找到一個php的系統,安裝之後,密碼竟然不對,不是安裝過程中設定的密碼。
根據資料庫表中的密碼2cb7eba0f22a74e42ff016dfb55cf5a0,去網上破解,發現密碼是like1989。
網上開源的程式碼,說不定就是別人修改過的,有沒有後門還真不一定哦。

100.wamp原來內建了xdebug。
執行一個php程式,發現ajax請求裡竟然返回了多餘的xdebug資訊。
無意中,發現waml內建了xdebug,還是很不錯的。
只不過,ajax請求這個地方不應該輸出錯誤資訊。

這個地方是錯誤是這樣的,mysql_connect函式早php5.5中已經不建議使用了,xdebug一直有輸出錯誤資訊。
改用mysql_li的函式就可以了。

相關文章