wtfsmd Posted July 7, 2008 Share Posted July 7, 2008 I have 2 function startElement() in my script is there anyway to kill the first function before it try's to re-declare the 2nd function? ??? ill post my code but its pretty long. <?php // START OF CURRENT SEASON $insideitem = false; $tag = ""; $place = ""; $previousplace = ""; $matchesplayed = ""; $wins = ""; $losses = ""; $winpercentage = ""; $gamesfor = ""; $gamesagainst = ""; $shutouts = ""; $streak = ""; $xp = ""; $level = ""; $levelup = ""; function startElement($parser, $name, $attrs) { global $insideitem, $tag, $place, $previousplace, $matchesplayed, $wins, $losses, $winpercentage, $gamesfor, $gamesagainst, $shutouts, $streak, $xp, $level, $levelup; if ($insideitem) { $tag = $name; } elseif ($name == "CURRENTSTATS") { $insideitem = true; } } function endElement($parser, $name) { global $insideitem, $tag, $place, $previousplace, $matchesplayed, $wins, $losses, $winpercentage, $gamesfor, $gamesagainst, $shutouts, $streak, $xp, $level, $levelup; if ($name == "CURRENTSTATS") { ?> <div class="boxOuter xl lt"> <h3>Body Count. Stats</h3> <div class="boxInner" style="background:none #282828;"> <table class="list list-center" style="border-bottom:1px solid #222;"> <thead> <tr> <th style="text-align:left;">Season</th> <th class="stat">Place</th> <th title="Matches Played" class="stat">MP</th> <th title="Wins" class="stat">W</th> <th title="Losses" class="stat">L</th> <th title="Ties" class="stat">T</th> <th title="Games For (Match Games Won)" class="stat">GF</th> <th title="Games Against (Match Games Lost)" class="stat">GA</th> <th title="Shutouts" class="stat">SO</th> <th title="Win Percentage" class="stat">Pct</th> <th title="Streak" class="stat">Strk</th> <th title="Best Streak" class="stat">B.Strk</th> <th title="XP / Next Level XP" class="stat">XP/LvlUp</th> <th title="XP Level" class="stat" style="width:60px;">Level</th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"><a href="/xbox360/call-of-duty-4/ladder/team/standings?season=448">Summer 2008</a></td> <td class="alt1"><?echo $place;?><sup>rd</sup> <img src="http://static.gamebattles.com/gb/icons/misc/rank_down.png" class="icon-rank" title="Down 1 place in standings" /></td> <td><?echo $matchesplayed;?></td> <td class="alt1"><?echo $wins;?></td> <td><?echo $losses;?></td> <td class="alt1">0</td> <td><?echo $gamesfor;?></td> <td class="alt1"><?echo $gamesagainst;?></td> <td><?echo $shutouts;?></td> <td class="alt1"><?echo $winpercentage;?></td> <td><?echo $streak;?></td> <td class="alt1">8W</td> <td><?echo $xp;?> / <?echo $levelup;?></td> <td class="alt1"><div class="bar-outer" style="width:80px;"><div class="bar-inner" style="width:13%;"><div class="bar-text" style="width:80px;"><?echo $level;?></div></div></div></td> </tr> <? $place = ""; $previousplace = ""; $matchesplayed = ""; $wins = ""; $losses = ""; $winpercentage = ""; $gamesfor = ""; $gamesagainst = ""; $shutouts = ""; $streak = ""; $xp = ""; $level = ""; $levelup = ""; $insideitem = false; } } function characterData($parser, $data) { global $insideitem, $tag, $place, $previousplace, $matchesplayed, $wins, $losses, $winpercentage, $gamesfor, $gamesagainst, $shutouts, $streak, $xp, $level, $levelup; if ($insideitem) { switch ($tag) { case "PLACE": $place .= $data; break; case "PREVIOUSPLACE": $previousplace .= $data; break; case "MATCHESPLAYED": $matchesplayed .= $data; break; case "WINS": $wins .= $data; break; case "LOSSES": $losses .= $data; break; case "WINPERCENTAGE": $winpercentage .= $data; break; case "GAMESFOR": $gamesfor .= $data; break; case "GAMESAGAINST": $gamesagainst .= $data; break; case "SHUTOUTS": $shutouts .= $data; break; case "STREAK": $streak .= $data; break; case "XP": $xp .= $data; break; case "LEVEL": $level .= $data; break; case "LEVELUP": $levelup .= $data; break; } } } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); $fp = fopen("http://gamebattles.com/xbox360/call-of-duty-4/team/body-count-1/stats.xml","r") or die("Error reading XML data."); while ($data = fread($fp, 4096)) xml_parse($xml_parser, $data, feof($fp)) or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); fclose($fp); xml_parser_free($xml_parser); /* END OF CURRENT SEASON ------------------------ ------------------------ START OF ALL TIME STATS*/ $insideitem = false; $tag = ""; $atplace = ""; $atpreviousplace = ""; $atmatchesplayed = ""; $atwins = ""; $atlosses = ""; $atwinpercentage = ""; $atgamesfor = ""; $atgamesagainst = ""; $atshutouts = ""; $atstreak = ""; $atxp = ""; $atlevel = ""; $atlevelup = ""; function startElement($parser, $name, $attrs) { global $insideitem, $tag, $atplace, $atpreviousplace, $atmatchesplayed, $atwins, $atlosses, $atwinpercentage, $atgamesfor, $atgamesagainst, $atshutouts, $atstreak, $atxp, $atlevel, $atlevelup; if ($insideitem) { $tag = $name; } elseif ($name == "ALLTIMESTATS") { $insideitem = true; } } function endElement($parser, $name) { global $insideitem, $tag, $atplace, $atpreviousplace, $atmatchesplayed, $atwins, $atlosses, $atwinpercentage, $atgamesfor, $atgamesagainst, $atshutouts, $atstreak, $atxp, $atlevel, $atlevelup; if ($name == "ALLTIMESTATS") { ?> <tr> <td class="alt2" style="text-align:left;">All-Time</td> <td>N/A</td> <td class="alt2"><?echo $atmatchesplayed?></td> <td><?echo $atwins?></td> <td class="alt2"><?echo $atlosses?></td> <td>0</td> <td class="alt2"><?echo $atgamesfor?></td> <td><?echo $atgamesagainst?></td> <td class="alt2"><?echo $atshutouts?></td> <td><?echo $atwinpercentage?></td> <td class="alt2"><?echo $atstreak?></td> <td>8W</td> <td class="alt2"><?echo $atxp?> / <?echo $atlevelup?></td> <td><div class="bar-outer" style="width:80px;"><div class="bar-inner" style="width:13%;"><div class="bar-text" style="width:80px;"><?echo $atlevelup?></div></div></div></td> </tr> </tbody> </table> </div> </div> <? $atplace = ""; $atpreviousplace = ""; $atmatchesplayed = ""; $atwins = ""; $atlosses = ""; $atwinpercentage = ""; $atgamesfor = ""; $atgamesagainst = ""; $atshutouts = ""; $atstreak = ""; $atxp = ""; $atlevel = ""; $atlevelup = ""; $insideitem = false; } } function characterData($parser, $data) { global $insideitem, $tag, $atplace, $atpreviousplace, $atmatchesplayed, $atwins, $atlosses, $atwinpercentage, $atgamesfor, $atgamesagainst, $atshutouts, $atstreak, $atxp, $atlevel, $atlevelup; if ($insideitem) { switch ($tag) { case "PLACE": $atplace .= $data; break; case "PREVIOUSPLACE": $atpreviousplace .= $data; break; case "MATCHESPLAYED": $atmatchesplayed .= $data; break; case "WINS": $atwins .= $data; break; case "LOSSES": $atlosses .= $data; break; case "WINPERCENTAGE": $atwinpercentage .= $data; break; case "GAMESFOR": $atgamesfor .= $data; break; case "GAMESAGAINST": $atgamesagainst .= $data; break; case "SHUTOUTS": $atshutouts .= $data; break; case "STREAK": $atstreak .= $data; break; case "XP": $atxp .= $data; break; case "LEVEL": $atlevel .= $data; break; case "LEVELUP": $atlevelup .= $data; break; } } } //End OF All Time $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); $fp = fopen("http://gamebattles.com/xbox360/call-of-duty-4/team/body-count-1/stats.xml","r") or die("Error reading XML data."); while ($data = fread($fp, 4096)) xml_parse($xml_parser, $data, feof($fp)) or die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); fclose($fp); xml_parser_free($xml_parser); ?> Link to comment https://forums.phpfreaks.com/topic/113535-redeclare-function-startelement/ Share on other sites More sharing options...
GingerRobot Posted July 7, 2008 Share Posted July 7, 2008 No, you cannot create a function which has already been created. Looks to me like all you need is a little logic. Something along the lines of having the 3rd parameter as optional. If it's been set, then do the stuff that's in your second function declaration; if not's not been set, then don't.# edit: e.g: <?php function myfunction ($foo,$bar=FALSE){ //do something with $foo; if($bar==TRUE){ // if $bar has been set, then do something different. } } myfunction('some value'); //only do the first part myfunction('some value',TRUE);//also do second part ?> Link to comment https://forums.phpfreaks.com/topic/113535-redeclare-function-startelement/#findComment-583365 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.