Можете ли вы изменить цвет текста, если в тексте используется определенное слово? - PullRequest
1 голос
/ 12 января 2020

Этот код:

$url = ('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604');

  function Feed($url) {
    $feed = simplexml_load_file($url) or die('Can not connect to server');
    $result = array();
    foreach ($feed->channel->item as $content) {
        array_push($result, $content);
    }
    return $result;
}

$title = 'Ev 134 Haukelifjell'; // Tittel som søkes for

foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
    if (strpos($f->title, $title) !== false)
        echo $f->description;
}

Может выводить что-то вроде этого:

Vær- og føreforhold: Stort sett snø- og isdekke, fare for glatte partier og redusert sikt. Klokken 06:15 var det -2 grader, liten kuling og middels snøbyger. Gjelder fra: 12.01.2020 06:21

вывод, вероятно, на неизвестном для вас языке, но это отчет о погоде. если погода настолько плохая, что дорога закрывается (да, это происходит в Норвегии), она скажет это здесь.

Что я хочу: если в этом тексте есть слово "закрыто", я хочу повторить "закрыто" " в красном. Если не просто "открыть", а "зеленый". Но если бы это эхо "могло быть закрыто", у меня все еще было бы зеленое "открыто". Пишите условия поиска на английском языке sh, я сам переведу.

1 Ответ

0 голосов
/ 12 января 2020

Я не знаю ваш язык, поэтому я буду вводить поисковые термины на английском языке. Вы должны перевести это самостоятельно.

$green_color    = 'green';
$red_color      = 'red';
$closed_text    = 'closed';               // here your closed text
$exception_text = 'could be closed';     // here your open exception text

    if (strpos($f->title, $title) !== false){

        // if the word closed is found
        if(strpos($f->description, $closed_text) !== false){

            // if the word closed is found,check if it's not part of the exception
            // class. if not, show red closed else show open in green.
            // 
            // - info: this is ternary operator. Different way of writing if/else
            echo strpos($f->description, $exception_text) === false) ? 
                 '<span style="color:'.$red_color.'">closed</span>' : 
                 '<span style="color:'.$green_color.'">open</span>'

        }else{
            // if no closed word is found. show open in green. 
            echo '<span style="color:'.$green_color.'">open</span>'
        }
      }     

Я использовал троичный оператор в этом примере. Может быть интересно узнать о: https://davidwalsh.name/php-shorthand-if-else-ternary-operators

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...