Задать вопрос
@PanCar

Когда я пытаюсь вывести текст в массиве который есть в переменной, оно не работает. Почему?

Доброго времени суток, я хотел сделать для себя сайт в котором будет выводится информация по погоде. В теме Почему оно не выводит текст? мне подсказали про array, но когда я пытался сделать то что я хотел( я брал на странице элемент и потом его содержимое, это все было в переменной, после чего когда я попытался вывести оно просто выводило то что оно не нашло такого текст который был в массиве (Это я так понял),хотя в массиве был тот текст который был в той переменной ) .Хотя если в переменную вставить именно текст который есть в массиве ,а не в переменной $what делать поиск по сайту то оно сработает.
Код:
<?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";
}

?>

Заранее спасибо. Если это глупый вопрос извините, я учусь.
  • Вопрос задан
  • 237 просмотров
Подписаться 1 Простой 57 комментариев
Решения вопроса 1
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы