Php 为什么它会多次重复一件事?
我对这段代码有一些问题,我似乎不知道为什么。它同时发布else回音和span回音两次。我不需要Php 为什么它会多次重复一件事?,php,xml,Php,Xml,我对这段代码有一些问题,我似乎不知道为什么。它同时发布else回音和span回音两次。我不需要}else echo{?我基本上得到OPEN(x4),而我希望它说OPEN一次 我很没经验(你可能会看到),非常感谢你的帮助 require_once 'feed.php'; $title = 'something'; foreach(Feed('url') as $f ) { if (strpos($f->title, $title) !== false) $gree
}else echo{
?我基本上得到OPEN(x4),而我希望它说OPEN一次
我很没经验(你可能会看到),非常感谢你的帮助
require_once 'feed.php';
$title = 'something';
foreach(Feed('url') as $f ) {
if (strpos($f->title, $title) !== false)
$green_color = 'green';
$orange_color = 'orange';
$red_color = 'red';
$closed_text = 'closed';
$Maintenance_text = 'Maintenance';
$exception_text = 'maybe';
if (strpos($f->title, $title) !== false){
if(strpos($f->description, $closed_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$red_color.'">CLOSED</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
}else{
echo '<span>OPEN</span>';
}
if(strpos($f->description, $Maintenance_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$orange_color.'">MAINTENANCE</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
}else{
echo '<span>OPEN</span>';
}
}
}
require_once'feed.php';
$title='something';
foreach(Feed('url')作为$f){
if(strpos($f->title,$title)!==false)
$green_color='green';
$orange_color='orange';
$red_color='red';
$closed_text='closed';
$Maintenance_text='Maintenance';
$exception_text='maybe';
if(strpos($f->title,$title)!==false){
if(strpos($f->description,$closed_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“关闭”:
"开放",;
}否则{
回声“开放”;
}
if(strpos($f->description,$Maintenance\u text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“维护”:
"开放",;
}否则{
回声“开放”;
}
}
}
Feed.php
<?php
$url = ('url');
function Feed($url) {
$feed = simplexml_load_file($url) or die('cant connect');
$result = array();
foreach ($feed->channel->item as $content) {
array_push($result, $content);
}
return $result;
}
?>
首先修复第一个问题,如果它没有
{
的话,我真的认为应该这样做
然后你有两个IF,每个IF都可以输出一条消息,当然大多数情况下至少有一个IF可以,因为它们都在测试不同的东西,所以至少有一个IF失败并转到IF的其他部分
因此,在此处使用if elseif else
construct只为每个循环提供OPEN
一次
require_once 'feed.php';
$title = 'Ev 134';
foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
if (strpos($f->title, $title) !== false) {
// added -------------- ^
$green_color = 'green';
$orange_color = 'orange';
$red_color = 'red';
$closed_text = 'stengt';
$kolonne_text = 'Kolonnekjøring';
$exception_text = 'kan bli';
if (strpos($f->title, $title) !== false){
if(strpos($f->description, $closed_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$red_color.'">CLOSED</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
} else if(strpos($f->description, $kolonne_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$orange_color.'">MAINTENANCE</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
} else {
echo '<span>OPEN</span>';
}
}
}
}
require_once'feed.php';
$title='ev134';
foreach(饲料)https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604“)作为$f){
if(strpos($f->title,$title)!==false){
//增加-----------------^
$green_color='green';
$orange_color='orange';
$red_color='red';
$closed_text='stengt';
$Kolonneuøtext='Kolonnekjøring';
$exception_text='kan bli';
if(strpos($f->title,$title)!==false){
if(strpos($f->description,$closed_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“关闭”:
"开放",;
}else if(strpos($f->description,$kolonne_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“维护”:
"开放",;
}否则{
回声“开放”;
}
}
}
}
首先修复第一个问题,如果它没有{
的话,我真的认为应该这样做
然后你有两个IF,每个IF都可以输出一条消息,当然大多数情况下至少有一个IF可以,因为它们都在测试不同的东西,所以至少有一个IF失败并转到IF的其他部分
因此,在此处使用if elseif else
construct只为每个循环提供OPEN
一次
require_once 'feed.php';
$title = 'Ev 134';
foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
if (strpos($f->title, $title) !== false) {
// added -------------- ^
$green_color = 'green';
$orange_color = 'orange';
$red_color = 'red';
$closed_text = 'stengt';
$kolonne_text = 'Kolonnekjøring';
$exception_text = 'kan bli';
if (strpos($f->title, $title) !== false){
if(strpos($f->description, $closed_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$red_color.'">CLOSED</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
} else if(strpos($f->description, $kolonne_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$orange_color.'">MAINTENANCE</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
} else {
echo '<span>OPEN</span>';
}
}
}
}
require_once'feed.php';
$title='ev134';
foreach(饲料)https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604“)作为$f){
if(strpos($f->title,$title)!==false){
//增加-----------------^
$green_color='green';
$orange_color='orange';
$red_color='red';
$closed_text='stengt';
$Kolonneuøtext='Kolonnekjøring';
$exception_text='kan bli';
if(strpos($f->title,$title)!==false){
if(strpos($f->description,$closed_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“关闭”:
"开放",;
}else if(strpos($f->description,$kolonne_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“维护”:
"开放",;
}否则{
回声“开放”;
}
}
}
}
您有下面提到的两条符合条件的记录
if (strpos($f->title, $title) !== false){
在这个if条件中,$closed_text&$kolonne_textif条件进入了else部分。所以2次循环2次else部分。这就是为什么你得到了4次跨度。试试下面的1,如果它解决了你的问题,就投上一票
require_once 'feed.php';
$title = 'Ev 134';
foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
$green_color = 'green';
$orange_color = 'orange';
$red_color = 'red';
$closed_text = 'stengt';
$kolonne_text = 'Kolonnekjøring';
$exception_text = 'kan bli';
$open = true;
if (strpos($f->title, $title) !== false){
if(strpos($f->description, $closed_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$red_color.'">CLOSED</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
$open = false;
}
if(strpos($f->description, $kolonne_text) !== false){
echo (strpos($f->description, $exception_text) === false) ?
'<span style="color:'.$orange_color.'">MAINTENANCE</span>' :
'<span style="color:'.$green_color.'">OPEN</span>' ;
$open = false;
}
if($open) {
echo '<span>OPEN</span>';
}
}
}
require_once'feed.php';
$title='ev134';
foreach(饲料)https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604“)作为$f){
$green_color='green';
$orange_color='orange';
$red_color='red';
$closed_text='stengt';
$Kolonneuøtext='Kolonnekjøring';
$exception_text='kan bli';
$open=true;
if(strpos($f->title,$title)!==false){
if(strpos($f->description,$closed_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“关闭”:
"开放",;
$open=false;
}
if(strpos($f->description,$kolonne_text)!==false){
echo(strpos($f->description,$exception\u text)===false)?
“维护”:
"开放",;
$open=false;
}
若有($未结){
回声“开放”;
}
}
}
注意:如果两个$closed_text和$kolonne_text都满足条件,您将再次面临相同的问题,因此请根据您的业务需要调整代码
您有以下提到的2条符合条件的记录
if (strpos($f->title, $title) !== false){
在这个if条件中,$closed_text&$kolonne_textif条件进入了else部分。所以2次循环2次else部分。这就是为什么你得到了4次跨度。试着在1以下,如果它解决了你的问题,就投上一票