我试图在foreach循环中使用if / else语句。 使用DomDocument,我试图找到描述标签和描述标签的内部。
这很好用。当有描述标记时,它会显示描述标记内的内容。如果没有描述标记,则显示:No description found No description found No description found No description found
。为什么它会显示错误四次?我该如何解决这个问题?
我使用 DomDocument和Laravel 5.4
元标记:
$meta = $dom->getElementsByTagName('meta');
我的代码:
@foreach ($meta as $node)
@if($node->getAttribute('name')=='description')
{{$node->getAttribute('content'), PHP_EOL}}
@else
{{'No description found'}}
@endif
@endforeach
编辑,根据Muthu17:
我差不多写了与你相同的代码。但唯一的问题是:它显示"没有找到描述"每时每刻。即使它找到了描述标签,它也会显示描述标签init和"没有找到描述"。
我已在我的控制器中宣布$showErrorMessage = 0;
。
@foreach ($meta as $node)
@if($node->getAttribute('name')=='description')
{{$node->getAttribute('content'), PHP_EOL}}
@else
{!! $showErrorMessage == 1; !!}
@endif
@endforeach
@if($showErrorMessage = 1)
{{'No description found'}}
@endif
答案 0 :(得分:0)
希望你看起来像这样
<?php $showErrorMessage = 0; ?>
@foreach ($meta as $node)
@if($node->getAttribute('name')=='description')
{{$node->getAttribute('content'), PHP_EOL}}
@else
<?php $showErrorMessage = 1;?>
@endif
@endforeach
@if($showErrorMessage == 0)
{{'No description found'}}
@endif