if语句-PHP-修改变量的值,加载两个不同的simpleXML URL


if statement - PHP - modify value of variable loading 2 different simpleXML urls

im试图将包含url的变量的值轻松更改为simpleXML文档。

我是PHP的新手,所以我还处于学习阶段。

XML文档1

<ss>
<gms w="17" y="2013" t="R" gd="1" bph="137">
<g eid="2013122900" gsis="56077" d="Sun" t="1:00" q="F" h="ATL" hnn="falcons" hs="20" v="CAR" vnn="panthers" vs="21" rz="0" ga="" gt="REG"/>
<g eid="2013122902" gsis="56079" d="Sun" t="1:00" q="F" h="CIN" hnn="bengals" hs="34" v="BAL" vnn="ravens" vs="17" rz="0" ga="" gt="REG"/>
<g eid="2013122904" gsis="56081" d="Sun" t="1:00" q="F" h="IND" hnn="colts" hs="30" v="JAC" vnn="jaguars" vs="10" rz="0" ga="" gt="REG"/>
<g eid="2013122905" gsis="56082" d="Sun" t="1:00" q="F" h="MIA" hnn="dolphins" hs="7" v="NYJ" vnn="jets" vs="20" rz="0" ga="" gt="REG"/>
<g eid="2013122906" gsis="56083" d="Sun" t="1:00" q="F" h="MIN" hnn="vikings" hs="14" v="DET" vnn="lions" vs="13" rz="0" ga="" gt="REG"/>
<g eid="2013122909" gsis="56086" d="Sun" t="1:00" q="F" h="NYG" hnn="giants" hs="20" v="WAS" vnn="redskins" vs="6" rz="0" ga="" gt="REG"/>
<g eid="2013122910" gsis="56087" d="Sun" t="1:00" q="F" h="PIT" hnn="steelers" hs="20" v="CLE" vnn="browns" vs="7" rz="0" ga="" gt="REG"/>
<g eid="2013122911" gsis="56088" d="Sun" t="1:00" q="F" h="TEN" hnn="titans" hs="16" v="HOU" vnn="texans" vs="10" rz="0" ga="" gt="REG"/>
<g eid="2013122912" gsis="56089" d="Sun" t="4:25" q="F" h="ARI" hnn="cardinals" hs="20" v="SF" vnn="49ers" vs="23" rz="0" ga="" gt="REG"/>
<g eid="2013122901" gsis="56078" d="Sun" t="4:25" q="F" h="CHI" hnn="bears" hs="28" v="GB" vnn="packers" vs="33" rz="0" ga="" gt="REG"/>
<g eid="2013122907" gsis="56084" d="Sun" t="4:25" q="F" h="NE" hnn="patriots" hs="34" v="BUF" vnn="bills" vs="20" rz="0" ga="" gt="REG"/>
<g eid="2013122908" gsis="56085" d="Sun" t="4:25" q="F" h="NO" hnn="saints" hs="42" v="TB" vnn="buccaneers" vs="17" rz="0" ga="" gt="REG"/>
<g eid="2013122913" gsis="56090" d="Sun" t="4:25" q="F" h="OAK" hnn="raiders" hs="14" v="DEN" vnn="broncos" vs="34" rz="0" ga="" gt="REG"/>
<g eid="2013122914" gsis="56091" d="Sun" t="4:25" q="FO" h="SD" hnn="chargers" hs="27" v="KC" vnn="chiefs" vs="24" rz="0" ga="" gt="REG"/>
<g eid="2013122915" gsis="56092" d="Sun" t="4:25" q="F" h="SEA" hnn="seahawks" hs="27" v="STL" vnn="rams" vs="9" rz="0" ga="" gt="REG"/>
<g eid="2013122903" gsis="56080" d="Sun" t="8:30" q="F" h="DAL" hnn="cowboys" hs="22" v="PHI" vnn="eagles" vs="24" rz="0" ga="" gt="REG"/>
</gms>
</ss>

XML文档2

<ss>
<gms w="22" y="2013" t="POST" gd="1" bf="0" bph="10">
<g eid="2014010400" gsis="56158" d="Sat" t="4:35" q="F" htn="Indianapolis Colts" hnn="colts" h="IND" hs="45" vtn="Kansas City Chiefs" vnn="chiefs" v="KC" vs="44" n="NBC" rz="0" ga="" o="1" gt="WC"/>
<g eid="2014010500" gsis="56160" d="Sun" t="1:05" q="F" htn="Cincinnati Bengals" hnn="bengals" h="CIN" hs="10" vtn="San Diego Chargers" vnn="chargers" v="SD" vs="27" n="CBS" rz="0" ga="" o="2" gt="WC"/>
<g eid="2014011101" gsis="56163" d="Sat" t="8:15" q="F" htn="New England Patriots" hnn="patriots" h="NE" hs="43" vtn="Indianapolis Colts" vnn="colts" v="IND" vs="22" n="CBS" rz="0" ga="" o="3" gt="DIV"/>
<g eid="2014011201" gsis="56165" d="Sun" t="4:40" q="F" htn="Denver Broncos" hnn="broncos" h="DEN" hs="24" vtn="San Diego Chargers" vnn="chargers" v="SD" vs="17" n="CBS" rz="0" ga="" o="4" gt="DIV"/>
<g eid="2014011900" gsis="56166" d="Sun" t="3:00" q="F" htn="Denver Broncos" hnn="broncos" h="DEN" hs="26" vtn="New England Patriots" vnn="patriots" v="NE" vs="16" n="CBS" rz="0" ga="" o="5" gt="CON"/>
<g eid="2014011901" gsis="56167" d="Sun" t="6:30" q="F" htn="Seattle Seahawks" hnn="seahawks" h="SEA" hs="23" vtn="San Francisco 49ers" vnn="49ers" v="SF" vs="17" n="FOX" rz="0" ga="" o="6" gt="CON"/>
<g eid="2014011200" gsis="56164" d="Sun" t="1:05" q="F" htn="Carolina Panthers" hnn="panthers" h="CAR" hs="10" vtn="San Francisco 49ers" vnn="49ers" v="SF" vs="23" n="FOX" rz="0" ga="" o="7" gt="DIV"/>
<g eid="2014011100" gsis="56162" d="Sat" t="4:35" q="F" htn="Seattle Seahawks" hnn="seahawks" h="SEA" hs="23" vtn="New Orleans Saints" vnn="saints" v="NO" vs="15" n="FOX" rz="0" ga="" o="8" gt="DIV"/>
<g eid="2014010501" gsis="56161" d="Sun" t="4:40" q="F" htn="Green Bay Packers" hnn="packers" h="GB" hs="20" vtn="San Francisco 49ers" vnn="49ers" v="SF" vs="23" n="FOX" rz="0" ga="" o="9" gt="WC"/>
<g eid="2014010401" gsis="56159" d="Sat" t="8:10" q="F" htn="Philadelphia Eagles" hnn="eagles" h="PHI" hs="24" vtn="New Orleans Saints" vnn="saints" v="NO" vs="26" n="NBC" rz="0" ga="" o="10" gt="WC"/>
<g eid="2014012600" gsis="56168" d="Sun" t="7:30" q="F" htn="Team Deion Sanders" hnn="team sanders" h="SAN" hs="21" vtn="Team Jerry Rice" vnn="team rice" v="RIC" vs="22" n="NBC" rz="0" ga="" o="11" gt="PRO"/>
<g eid="2014020200" gsis="56169" d="Sun" t="6:30" q="F" htn="Denver Broncos" hnn="broncos" h="DEN" hs="8" vtn="Seattle Seahawks" vnn="seahawks" v="SEA" vs="43" n="FOX" rz="0" ga="" o="12" gt="SB"/>
</gms>
<gds>
<gd eid="2014010400" gsis="56158" h1q="7" h2q="3" h3q="21" h4q="14" hot="0" v1q="10" v2q="21" v3q="10" v4q="3" vot="0" htol="2" vtol="0"/>
<gd eid="2014010500" gsis="56160" h1q="0" h2q="10" h3q="0" h4q="0" hot="0" v1q="7" v2q="0" v3q="10" v4q="10" vot="0" htol="0" vtol="2"/>
<gd eid="2014011101" gsis="56163" h1q="14" h2q="7" h3q="8" h4q="14" hot="0" v1q="7" v2q="5" v3q="10" v4q="0" vot="0" htol="1" vtol="3"/>
<gd eid="2014011201" gsis="56165" h1q="7" h2q="7" h3q="3" h4q="7" hot="0" v1q="0" v2q="0" v3q="0" v4q="17" vot="0" htol="1" vtol="0"/>
<gd eid="2014011900" gsis="56166" h1q="3" h2q="10" h3q="7" h4q="6" hot="0" v1q="0" v2q="3" v3q="0" v4q="13" vot="0" htol="1" vtol="0"/>
<gd eid="2014011901" gsis="56167" h1q="0" h2q="3" h3q="10" h4q="10" hot="0" v1q="3" v2q="7" v3q="7" v4q="0" vot="0" htol="1" vtol="0"/>
<gd eid="2014011200" gsis="56164" h1q="0" h2q="10" h3q="0" h4q="0" hot="0" v1q="6" v2q="7" v3q="7" v4q="3" vot="0" htol="0" vtol="1"/>
<gd eid="2014011100" gsis="56162" h1q="6" h2q="10" h3q="0" h4q="7" hot="0" v1q="0" v2q="0" v3q="0" v4q="15" vot="0" htol="1" vtol="0"/>
<gd eid="2014010501" gsis="56161" h1q="0" h2q="10" h3q="0" h4q="10" hot="0" v1q="6" v2q="7" v3q="0" v4q="10" vot="0" htol="0" vtol="0"/>
<gd eid="2014010401" gsis="56159" h1q="0" h2q="7" h3q="7" h4q="10" hot="0" v1q="0" v2q="6" v3q="14" v4q="6" vot="0" htol="0" vtol="0"/>
<gd eid="2014012600" gsis="56168" h1q="7" h2q="7" h3q="0" h4q="7" hot="0" v1q="0" v2q="14" v3q="0" v4q="8" vot="0" htol="1" vtol="1"/>
<gd eid="2014020200" gsis="56169" h1q="0" h2q="0" h3q="8" h4q="0" hot="0" v1q="8" v2q="14" v3q="14" v4q="7" vot="0" htol="3" vtol="3"/>
</gds>
</ss>

到目前为止,我已经尝试过了*(更新以了解更多详细信息)*。

$load_url_1 = "http://document1.com";
$load_url_2 = "http://document2.com";
//Main XML Document
$results = simplexml_load_file($load_url_1);
// If statement to check which document to load.
// w = Week (can be 1-17)
// q = Quarters (can be Q1,Q2,Q3,Q4,FO,F,D)
if ($results->gms[0]->attributes()->w = '17' && $results->gms[0]->attributes()->q[15] = 'F,FO') {
    // If the attributes for all 16 games contains this, it should load this url
    $results = simplexml_load_file($load_url_2);
}

如果我去掉这行&amp$results->gms[0]->attributes()->q[15]="F,FO"它加载文档,但在加载文档之前需要检查$results->gms[0]->attributes()->w='17'以上。

&amp$results->gms[0]->attributes()->q[15]="F,FO"-应该进行最后一场比赛(16场比赛),并检查其中是否有F或FO。

有没有一种简单的方法可以更好地调整它,而不必更改我的PHP的所有其他部分?

下面是一个可以轻松调整的工作示例

<?php 
// INFO : Works only for the first gms element !
// If you have multiple gms elements, you need to add a loop
$docs = ['doc1.xml', 'doc2.xml'];
foreach ($docs as $doc) {
  displayData($doc);
}
function displayData($d) {
  $results = simplexml_load_file($d);
  $gms = $results->gms[0];
  for ($i = 0; $i < count($gms->g); $i++) {
      echo $gms->g[$i]->attributes()->hnn . "'n"; // for example
  }
  return;
}
?>

希望它能帮助你!