Php Symfony crawler在windows中使用CR LF返回数据,但在linux中不使用

Php Symfony crawler在windows中使用CR LF返回数据,但在linux中不使用,php,symfony,web-crawler,newline,domcrawler,Php,Symfony,Web Crawler,Newline,Domcrawler,我试图通过使用symfony爬虫链接从网站上的标签中获取数据 foreach ($tables as $table) { $response = $this->client->get($url, [ 'http_errors' => false, ]); $body = $response->getBody()->getContents(); $crawler = new crawler($body);

我试图通过使用symfony爬虫链接从网站上的标签中获取数据

foreach ($tables as $table) {
    $response = $this->client->get($url, [
            'http_errors' => false,
    ]);

    $body = $response->getBody()->getContents();
    $crawler = new crawler($body);
    $version = $crawler->filter('tr > td');

    $i = 1;
    while (true) {
        if (something) {
            break;
        }
        $tableVersions[$table] = preg_split('/\r\n|\r|\n/', $version->eq($i + 1)->text());
        $i++;
    }
}
return $tableVersions;
在windows中,preg_拆分可以很好地拆分我想要拆分的单词,并将它们分别放入一个数组中。
当我在windows中打印
$version->eq($i+1)->text()
时,它看起来像这样:

word1
word2
word3
在linux中,它只是将所有不带任何分隔符的字符串放在数组的第一个元素中,如下所示

word1word2word3
这是完全相同的代码。
所以我猜在windows中爬虫程序会返回新的换行符,而在linux中不会?然后,我应该如何获得html页面上所有标记的一个漂亮数组,然后对它们进行过滤

您如何“打印”出该值?$version->eq($i+1)->text()的内容是什么?在我的大脑中的某个地方:Linux和Windows对待换行符的方式不同。也许这会给你一个进一步搜索的方向。@KasiaGogolek我只是回显它并在我的cli中观察它。$version->eq($i+1)->text()的内容只是一个长字符串,在我的windows cli中每个单词都有一个换行符,但在我的Linux中没有。你试过用
PHP\u EOL
常量代替其他东西吗
PHP_EOL
包含操作系统特定的换行符,因此在windows和linux上可能是正确的。