繁体   English   中英

如果输出为空做其他事情吗?

[英]if output is empty do something else?

此代码输出来自道路的信息。 但有时没有信息,然后我想从另一个地方收集信息。 我怎样才能做到这一点?

$title = '1234';

foreach(Feed('$url') as $f ) {
  if (strpos($f->title, $title) !== false){
    $pos = $f->children('georss', true)->children('gml', true)->children('gml', true);
    list($number1, $number2) = explode(' ', $pos);
      if ($number1 > 0 && $number1 < 100){
        if ($number2 > 1 && $number2 < 10){
         echo $f->description. "<br>";
          }
        }
      }
    }

如果这个 ^^ 没有结果,我该怎么做,然后执行以下操作:

    foreach(Feed('$url') as $f ) {
      if (strpos($f->title, $title) !== false){
             echo $f->description. "<br>";
              }
            }

我知道我可以使用 Len($variable) = 0 检查变量是否为空。但我没有变量。 我怎么能得到这个? 那我想我可以这样做:

if (Len($variable) = 0) {
  foreach(Feed('$url') as $g ) {
    if (strpos($g->title, $title) !== false){
           echo $g->description. "<br>";
            }
          }
        } 

我想if在里面有foreach是可能的吗? 任何帮助是极大的赞赏!

您可以使用布尔变量来指示您是否通过第一种方式找到了描述,如果没有,则通过第二种方式找到它:

$descriptionFound = false;

foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=601') as $f) {
  if (strpos($f->title, $title) !== false){
    $pos = $f->children('georss', true)->children('gml', true)->children('gml', true);
    list($number1, $number2) = explode(' ', $pos);

    if (
      $number1 > 59.417104 && $number1 < 60.089568
      && $number2 > 5.115812 && $number2 < 7.811784
    ) {
      $descriptionFound = true;
      echo $f->description . "<br>";
    }
  }
}

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

同样,您可以在检查各种方法时存储描述,然后在最后输出值:

$description = '';

foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=601') as $f) {
  if (strpos($f->title, $title) !== false){
    $pos = $f->children('georss', true)->children('gml', true)->children('gml', true);
    list($number1, $number2) = explode(' ', $pos);

    if (
      $number1 > 59.417104 && $number1 < 60.089568
      && $number2 > 5.115812 && $number2 < 7.811784
    ) {
      $description .= $f->description . "<br>";
    }
  }
}

if (!$description) { //this will be falsy if it's an empty string, so no need to do == ''
  foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f) {
    if (strpos($f->title, $title) !== false){
      $description .= $f->description . "<br>";
    }
  }
}

echo $description;

要么会给你相同的代码流和最终结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM