首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP警告:使用长url的file_get_contents

PHP警告:使用长url的file_get_contents
EN

Stack Overflow用户
提问于 2020-07-09 02:36:54
回答 1查看 60关注 0票数 1

我有一些调用第三方服务并返回股票/etf数据的代码。这是错误:

代码语言:javascript
复制
    PHP Warning:  file_get_contents(http://********.******.********.com/*************.json?apikey=********************************&symbols=FFHG,FFTI,NUDM,NUEM,GIGB,AZIA,BCHP,BRAF,BRXX,BSCF,BSJF,DBIZ,EEHB,EWRM,EWRS,GURX,INC,ITF,JUNR,LAG,MATL,MDLL,SUBD,TENZ,CU,MULT,PLTM,HYLB,SGQI,WTID,WTIU,CUMB,COMB,COMG,BVAL,PPLN,ICOW,CALF,GMFL,RNDM,RNEM,RNLC,RNMC,RNSC,RNDV,FCAL,VSMV,OCIO,TTAI,GOAU,VESH,USMF,GSSC,SMMD,IBD,PREF,FANZ,FNG,EUXL,SUSC,SUSB,IGEB,HYDB,SQLV,REEM,RGLB,REFA,SPMV,USEQ,EQRR,EMXC,USOU,USOD,DMRL,DMRM,DMRS,DMRI,EDOW,AMCA,ULBR,DLBR,EMBU,DWPP,FMDG,FFIU,FPEI,YESR,FLMI,FLMB,MFUS,MFEM,MFDX,SECT,MAGA,GHYB,OBOR,PFFD,MLQD,LLQD,IBDS,UBRT,DBRT,RBUS,RBIN,MXDU,XNTK,GSEW,PBUS,PBSM,PBDM,PBEE,PBTP,BSCR,BSJP,HTRB,DALT,PBND,NUBD,LFEQ,SCHK,CHGX,USMC,KEMQ,VGFO,DIAL,GOP,DEMS,PLCY,BERN,BRGL,SPMD,AIEQ,KGRN,MMIT,MMIN,PVAL,PMOM,LOGO,GRMY,EURZ,USHY,ULVM,USVM,UIVM,UEVM,USTB,UITB,CEY,FLAU,FLCA,FLEE,FLEH,FLFR,FLGR,FLHK,FLIY,FLIP,FLJH,FLGB,FLKR,FLBR,FLCH,FLMX,FLTW,GUDB,BIBL,RVRS,FTVA,FFSG,FFTG,FMHI,SDVY,JDIV,JMIN,JV
 AL,JQUA,JMOM,ENTR,JHSC,PXUS,VTC,OMFL,OMF in ..../functions.php on line 931

它在"JV“之后断开,但实际的值是JVAL (您将在下一行看到AL位)。

我已经检查了数据库,应该返回100%的值是JVAL。字段中没有空格。

我不确定为什么它会在这一点上崩溃。

下面是调用file_get_contents的PHP函数:

代码语言:javascript
复制
function get_etf_data($syms) {

  if (is_array($syms)) {
    $syms = implode(",", $syms);
  }
  $url = 'http://********.******.********.com/*************.json?apikey=********************************&symbols='.$syms;
  //die($url); // debug
  sn_bc_counter('get_etf_data',$_SERVER['REQUEST_URI']);
  $data = file_get_contents($url,"r");
  $data = json_decode($data);
  $arr = array();

  foreach ($data->results as $result) {
    $arr[] = $result;
  }

  return $arr;
}

有什么想法可以给我指明正确的方向吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-09 03:16:00

你可以用curl代替file_get_contents来检查吗?

如下所示:

代码语言:javascript
复制
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$responseBody = curl_exec($ch);

if ($responseBody === false) {
    echo "CURL Error: " . curl_error($ch);
}

$data = json_decode($responseBody);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62801490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档