P
P
PanCar2021-06-25 20:50:28
PHP
PanCar, 2021-06-25 20:50:28

When I try to display the text in the array that is in the variable, it does not work. Why?

Good day, I wanted to make a website for myself that will display weather information. In the topic Why does it not display text? I was told about array, but when I tried to do what I wanted (I took an element on the page and then its contents, it was all in a variable, after which when I tried to display it simply displayed that it did not find such a text that was in array (That's how I understood it), although the array contained the text that was in that variable).
The code:

<?php 
#Эта функция которая берет данные 
/*function Parse($p1,$p2,$p3){
  $num1 = strpos($p1, $p2);
  $num2 = substr($p1,$num1);
if ($num1 === false) return 0;
return strip_tags( substr($num2,0, strpos($num2,$p3)));
}*/ // Я это закоментировал ,так как это у меня есть в другом файле ,и оно если подключаю их двоих выдает ошибку

$gg = array( # Массив
  'Погода в Запорожье: Без осадков. Облачно с прояснениями.',
  'Погода в Запорожье: Без осадков. Небольшая облачность.',
  'Погода в Запорожье: Без осадков. Переменная облачность.'
);

$String = file_get_contents('https://www.meteoprog.ua/ru/weather/Zaporizhzhia/'); #Берет сайт
$what = Parse($String, '<div class="infoPrognosis widthProg">' ,/*Тут берется содержимое между этими тегами*/ '</div>');
echo $what; # Тут я вывожу то что оно взяло


#Это проверяет есть ли в $what тот текст что есть в массиве ,если есть то выводит РАБОТАЕТ! Если нет то stop
if (in_array($what , $gg)) { 
  echo "РАБОТАЕТ!";
}
else{
  echo "stop";
}

?>

Thanks in advance. If this is a stupid question sorry, I'm learning.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
D
Dmitry, 2021-06-26
@PanCar

function parse($p1, $p2, $p3)
{
    preg_match('#' . $p2 . '(.*)' . $p3 . '#isU', $p1, $matches);

    return preg_replace('#(:\s+)#', ': ', trim($matches[1]));
}

$gg = array( # Массив
    'Погода в Запорожье: Без осадков. Облачно с прояснениями.',
    'Погода в Запорожье: Без осадков. Небольшая облачность.',
    'Погода в Запорожье: Без осадков. Переменная облачность.'
);

// Кэш, чтоб не слать постоянно запросы на сервер, раз в сутки обновляется
if (!file_exists(date('dmY') . '-weat.cache')) {
    $string = file_get_contents('https://www.meteoprog.ua/ru/weather/Zaporizhzhia/'); #Берет сайт
    file_put_contents(date('dmY') . '-weat.cache', $string);
} else {
    $string = file_get_contents(date('dmY') . '-weat.cache');
}
$what = parse($string, '<div class="infoPrognosis widthProg">', '</div>');
var_dump($what);
var_dump($gg[2]);

if (in_array($what, $gg, true)) {
    echo 'РАБОТАЕТ!';
} else {
    echo 'stop';
}

60d6c297496b6979372420.png

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question