uc通讯不成功php版本过高,Ucenter通信失败排查方法
定位錯誤來源:
1. 使用firebug或類似于firebug的工具審查”通信失敗“這幾個字
2. 會發現包含這幾個字的div的同級下方有個script標簽,復制該script標簽的src值到瀏覽器的新標簽頁并打開
3. 這個url指向的是ucenter中app模塊的onping操作(ucenter/control/admin/app.php)
onping解析:
1. onping會向url中指定的應用的uc.php發出一個請求,請求的參數為要執行的存在于uc.php中的動作的動作名test以及一個時間戳
2. uc.php收到請求會執行test,并返回1
通信失敗排查方法:
根據上面的解析可知,如果通信失敗就說明應用中的uc.php并沒有正常的返回1,此時就要排查uc.php出了什么問題:
1. 在onping中輸出$url(該url為ucenter根據自己設置的應用信息組成的uc.php的url),檢查該url是否可以正常訪問到應用中的uc.php,如果不能請修改
2. 如果可以正常訪問且沒有報錯,那么就要一步步的排查uc.php的執行狀況了
最終的目的就是讓$url的輸出為1
一個比較怪異的問題:
有時候會發現$url的輸出值為 "亂碼1",而導致通信失敗...
這里的亂碼其實是uc.php文件或者uc.php加載的其他文件的bom頭,要去除它,就要排查哪個文件中存在這個bom頭然后去掉,如果實在找不到,還有個治標不治本的方法:
(為返回狀態值做去除bom頭的操作)
代碼:
function rmBOM($string)
{
if (substr($string, 0,3) == pack('CCC',0xef,0xbb,0xbf))
{
$string = substr($string, 3);
}
return $string;
}
總結
以上是生活随笔為你收集整理的uc通讯不成功php版本过高,Ucenter通信失败排查方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫实例(一) b站篇
- 下一篇: php对象比较大小,PHP 面向对象:对