鍍金池/ 問答/PHP  Linux/ 請教一下 代碼哪兒出問題了,貌似抓不到數(shù)據(jù)

請教一下 代碼哪兒出問題了,貌似抓不到數(shù)據(jù)

抓不到數(shù)據(jù)。。瀏覽器打開可以的

<?php
include 'conn.php';

function go_curl($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT,60);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    $data = curl_exec($curl);
    curl_close($curl);

    return $data;
}

function random_str($length) {
    $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
    $strlen = 62;
    while($length > $strlen){
        $str .= $str;
        $strlen += 60;
    }

    $str = str_shuffle($str);
    return substr($str, 0, $length);
}

$url_list = array(
    'u_cx',
);

function writeData($type) {

    $urlArr = array(
        'u_cx' => array('pingtai_url' => 'http://www.u.cx', 'url' => 'https://www.u.cx/trade/index_json/market/wkc_bitcny'),   
    );

    $urlData = $urlArr[$type];
    $url = $urlData['url'];

    if ($type == 'u_cx' ) {
        $url .= random_str(8);
    }

    $data = go_curl($url);

    if (! $data) {
        return false;
    }

    $dataFormart = array(
        'current_price' => 0,
        'buy' => 0,
        'sell' => 0,
        'volume' => 0,
        'turnover' => 0,
        'change' => 0
    );

    if (in_array($type, array('u_cx11'))) {
    
        $dataArr = $data;
    } else {
      $data = trim($data,chr(239).chr(187).chr(191));
        $dataArr = json_decode($data, true);
        if (! $dataArr) {
            return false;
        }
    }

    switch($type) {
        case 'u_cx':
            $info = $dataArr['top'];
            $dataFormart['current_price'] = $info[0];
            $dataFormart['buy'] = $info[1];
            $dataFormart['sell'] = $info[2];
            $dataFormart['volume'] = $info[5];
            $dataFormart['change'] = $info[6];
        break;    
      }

    $data = json_encode($dataFormart);

    // insert 方式
    $sqlArr = array(
        $type,
        $urlData['pingtai_url'],
        $data,//htmlspecialchars($data)
    );



  echo "UPDATE `info` SET `info` = '{$data}' WHERE `pingtai` = '{$type}'";

  return $sql;
}

foreach ($url_list as $value) {

    $sql = writeData($value);
    if (! $sql) continue;

    mysql_query($sql);
}

mysql_close($con);

?>
回答
編輯回答
撥弦

先分析一下原始接口的header相關(guān)信息,模擬請求就要模擬的像一些,另外就是做好日記,有什么問題也能很快發(fā)現(xiàn)

2017年10月9日 19:44
編輯回答
背叛者

推薦你花五分鐘時(shí)間看一下xdebug相關(guān),用xdebug追蹤一下

2018年7月23日 01:28
編輯回答
孤星

環(huán)境、請求不一致的情況下,大家很難看代碼來給題主進(jìn)行分析的(除非是很明顯的語法錯(cuò)誤),建議先打斷點(diǎn)進(jìn)行debug,根據(jù)您的業(yè)務(wù)邏輯走調(diào)試,看看走到哪的時(shí)候是不對的,找到問題點(diǎn),如果無法解決,再把具體的問題點(diǎn)寫出來題問~

2017年4月1日 13:45