无法使用 shell_exec 和 curl php 连接到特定网站

我正在尝试访问此(https://www.gearbest.com/cell-phones/pp_009969695587.html)页面,但没有运气。我没有得到回应...


<?php


$output = shell_exec('curl -L "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0" https://www.gearbest.com/cell-phones/pp_009969695587.html');

echo $output;


  $html= str_get_html($output);

  echo $html;

  ?>


不负相思意
浏览 205回答 2
2回答

萧十郎

你忘了检查标准错误。你在 stderr 中得到输出,但我猜你的 stderr 被重定向到了你没有看到的地方(例如,如果你使用的是 php-fpm+nginx,那么 stderr 通常默认重定向到 nginx 的错误日志)检查您的标准错误,或通过2>&1在命令末尾添加将标准错误重定向到标准输出。作为记录,这是我期望您在 stderr 中获得的内容(这是我在运行时在 stderr 中获得的内容):curl:&nbsp;(6)&nbsp;Could&nbsp;not&nbsp;resolve&nbsp;host:&nbsp;Mozilla curl:&nbsp;(56)&nbsp;OpenSSL&nbsp;SSL_read:&nbsp;SSL_ERROR_SYSCALL,&nbsp;errno&nbsp;104..这不能解决我怀疑是你的实际问题,那个齿轮野兽正在阻止卷曲,但这不是你真正的问题,所以我想我不会进入那个......?

红颜莎娜

基于这个答案https://stackoverflow.com/a/31597823/80836以下似乎有效:curl&nbsp;'https://www.gearbest.com/cell-phones/pp_009969695587.html'&nbsp;-H&nbsp;'authority:&nbsp;www.gearbest.com'&nbsp;-H&nbsp;'upgrade-insecure-requests:&nbsp;1'&nbsp;-H&nbsp;'user-agent:&nbsp;Mozilla/5.0&nbsp;(X11;&nbsp;Linux&nbsp;x86_64)&nbsp;AppleWebKit/537.36&nbsp;(KHTML,&nbsp;like&nbsp;Gecko)&nbsp;Chrome/76.0.3809.100&nbsp;Safari/537.36'&nbsp;-H&nbsp;'sec-fetch-mode:&nbsp;navigate'&nbsp;-H&nbsp;'sec-fetch-user:&nbsp;?1'&nbsp;-H&nbsp;'accept:&nbsp;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'&nbsp;-H&nbsp;'sec-fetch-site:&nbsp;none'&nbsp;-H&nbsp;'accept-encoding:&nbsp;gzip,&nbsp;deflate,&nbsp;br'&nbsp;-H&nbsp;'accept-language:&nbsp;en-US,en;q=0.9,el;q=0.8'&nbsp;--compressed
打开App,查看更多内容
随时随地看视频慕课网APP