Php Laravel使用Goutte错误刮取外部网站数据

Php Laravel使用Goutte错误刮取外部网站数据,php,laravel,goutte,Php,Laravel,Goutte,composer.json: "php": "^7.1.3", "fabpot/goutte": "^4.0", "fideloper/proxy": "^4.0", "guzzlehttp/guzzle": "^6.5", "laravel/framework": "^6.2", "laravel/passport": "^8.4", "laravel/tinker": "^2.0",

composer.json:

"php": "^7.1.3",
        "fabpot/goutte": "^4.0",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "^6.5",
        "laravel/framework": "^6.2",
        "laravel/passport": "^8.4",
        "laravel/tinker": "^2.0",
        "laravel/ui": "^1.2",
        "symfony/translation": "4.3.8"
use Illuminate\Http\Request;
use App\Http\Requests;
use Goutte\Client;
use Symfony\Component\HttpClient\HttpClient;



class getStuff extends Controller
{
    public function get(Request $request) {

      $client = new Client();
      $crawler = $client->request('GET', 'https://www.symfony.com/blog/');

      return '';
}
Symfony\Component\Debug\Exception\FatalThrowableError
Return value of Symfony\Component\DomCrawler\Crawler::createSubCrawler() must be an instance of Symfony\Component\DomCrawler\object, instance of Symfony\Component\DomCrawler\Crawler returned
控制器:

"php": "^7.1.3",
        "fabpot/goutte": "^4.0",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "^6.5",
        "laravel/framework": "^6.2",
        "laravel/passport": "^8.4",
        "laravel/tinker": "^2.0",
        "laravel/ui": "^1.2",
        "symfony/translation": "4.3.8"
use Illuminate\Http\Request;
use App\Http\Requests;
use Goutte\Client;
use Symfony\Component\HttpClient\HttpClient;



class getStuff extends Controller
{
    public function get(Request $request) {

      $client = new Client();
      $crawler = $client->request('GET', 'https://www.symfony.com/blog/');

      return '';
}
Symfony\Component\Debug\Exception\FatalThrowableError
Return value of Symfony\Component\DomCrawler\Crawler::createSubCrawler() must be an instance of Symfony\Component\DomCrawler\object, instance of Symfony\Component\DomCrawler\Crawler returned
错误:

"php": "^7.1.3",
        "fabpot/goutte": "^4.0",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "^6.5",
        "laravel/framework": "^6.2",
        "laravel/passport": "^8.4",
        "laravel/tinker": "^2.0",
        "laravel/ui": "^1.2",
        "symfony/translation": "4.3.8"
use Illuminate\Http\Request;
use App\Http\Requests;
use Goutte\Client;
use Symfony\Component\HttpClient\HttpClient;



class getStuff extends Controller
{
    public function get(Request $request) {

      $client = new Client();
      $crawler = $client->request('GET', 'https://www.symfony.com/blog/');

      return '';
}
Symfony\Component\Debug\Exception\FatalThrowableError
Return value of Symfony\Component\DomCrawler\Crawler::createSubCrawler() must be an instance of Symfony\Component\DomCrawler\object, instance of Symfony\Component\DomCrawler\Crawler returned

它总是在到达
$crawler=$client->request
时中断。我一辈子都搞不清楚发生了什么事。我尝试了不同的软件包,将其删除,然后再次添加。谢谢你的帮助

我猜您的机器上安装了两个版本的PHP。看起来您的命令行版本(运行composer)是>=PHP7.2,但web服务器运行的PHP版本是
symfony/dom crawler
中,5.0.0版更新了
crawler::createSubCrawler()
方法,使其具有
对象
返回类型提示。它还将PHP版本依赖项更新为
^7.2.5
,因此除非PHP running composer的版本>=^7.2.5,否则无法安装此版本

但是,web服务器运行的PHP版本似乎不理解
对象
类型提示,因此它正在查找名为
Symfony\Component\domclawler\object
的实际类。由于PHP不理解类型提示,这意味着运行代码的版本<7.2.0


您需要确保web服务器用来运行代码的PHP版本与运行composer来安装依赖项的PHP版本相同。

谢谢!我运行的是XAMPP,我刚刚下载了它的一个更高版本,现在它工作顺利!