Ссылка возвращает текст, завернутый в HTML. Простейшим подходом было бы использовать HTML :: FormatText и HTML :: Parse для получения только текстовой версии.
#!/usr/bin/perl
use strict;
use warnings;
use HTML::TreeBuilder;
use HTML::FormatText;
my $url = 'https://www.ogimet.com/ultimos_synops2.php?lang=en&estado=Zamb&fmt=txt&Send=Send';
my $text = HTML::FormatText->new(leftmargin=>0, rightmargin=>100000000000)->format(HTML::TreeBuilder->new_from_url($url));
my $file = 'Zamb.txt';
open (my $fh, '>', $file);
print $fh $text;
close ($fh);
Это содержимое Zamb.txt впоследствии.
$ cat Zamb.txt
##########################################################
# Query made at 02/29/2020 18:15:54 UTC
##########################################################
##########################################################
# latest SYNOP reports from Zambia before 02/29/2020 18:15:54 UTC
##########################################################
202002291200 AAXX 29124 67855 42775 51401 10310 20168 3//// 48/// 85201
333 5//// 85850 83080=
Мой php фу не обновлен, но для PHP я думаю, что вы можете использовать следующее:
<?php
$url = 'https://www.ogimet.com/ultimos_synops2.php?lang=en&estado=Zamb&fmt=txt&Send=Send';
$content = strip_tags(file_get_contents($url));
echo substr($content, strpos($content, '###############'));
Примечание. что есть некоторые параметры конфигурации, которые могут отключить выборку URL через file_get_contents, поэтому YMMV.
Однако на той же странице есть примечание:
ПРИМЕЧАНИЕ. Если вы хотите просто получить файлы с отчетами о синхронизации в формате CSV без тегов HTML рассмотрите возможность использования бинарного getsynop
Это позволит получить те же данные в удобном формате:
$ wget "https://www.ogimet.com/cgi-bin/getsynop?begin=$(date +%Y%m%d0000)&state=Zambia" -o /dev/null -O - | tail -1
67855,2020,02,29,12,00,AAXX 29124 67855 42775 51401 10310 20168 3//// 48/// 85201 333 5//// 85850 83080=