Краулер возвращает данные с помощью CR LF в Windows, но не в LinuxPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Краулер возвращает данные с помощью CR LF в Windows, но не в Linux

Сообщение Anonymous »

Я пытаюсь получить данные из тегов на веб-сайте, используя ссылку для сканера 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_split прекрасно разделяет слова, которые я хотел разделить, и помещает их каждое отдельно в массив.

Когда я распечатайте $version->eq($i + 1)->text() в Windows, это выглядит так:

Код: Выделить всё

word1
word2
word3
В Linux он просто помещает все строки без разделителя в первый элемент массива, вот так.

Код: Выделить всё

word1word2word3
это тот же код.
Полагаю, в Windows сканер возвращает новые переводы строк, а в Linux — нет? Как мне затем получить хороший массив всех тегов на HTML-странице, а затем отфильтровать их?

Подробнее здесь: https://stackoverflow.com/questions/490 ... t-in-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»