mlavwilson Posted October 8, 2006 Share Posted October 8, 2006 I have the following code that works great on my 5.1.2 local instance, then when I deploy it to my goDaddy server which is running 4.3.11, the $league varable does not contain any coaches that the FranchiseHandler created. I know the sax parse is working (see: http://www.ffauthority.com/modules/projection/parse.php), because the echo is displaying the ids. However the $league varable seams to have messed up scope on hte 4.3.11 instance, aAny ideas?[code]<?phpif (!defined("XOOPS_ROOT_PATH")){ die("XOOPS root path not defined");}require (XOOPS_ROOT_PATH."/class/ff/League.php");require (XOOPS_ROOT_PATH."/class/snoopy.php");require (XOOPS_ROOT_PATH."/class/xml/saxparser.php");require (XOOPS_ROOT_PATH."/class/xml/xmltaghandler.php");class MflParser{ var $version = "1.0.0"; var $xml; var $league; function doParse($leagueId) { $this->league = new League($leagueId); $file = "http://football.myfantasyleague.com/2006/export?L=".$leagueId."&TYPE=league"; $snoopy = new Snoopy(); if (!$snoopy->fetch($file) || !$snoopy->results) { $this->_setErrors('Could not open file: '.$file); if (!empty ($snoopy->error)) $this->_setErrors("Snoopy status=".htmlspecialchars($snoopy->error)); if ($snoopy->timed_out) $this->_setErrors("Timed out"); } $this->xml = $snoopy->results; $leagueParser = new Mfl2Parser($snoopy->results, $this->league); if (!$leagueParser->parse()) { $this->_setErrors($this->_parser->getErrors(false)); unset ($leagueParser); return false; } }}class Mfl2Parser extends SaxParser{ var $league; function Mfl2Parser($input, &$league) { $this->SaxParser($input); $this->useUtfEncoding(); $this->addTagHandler(new FranchiseHandler()); $this->league = $league; }}class FranchiseHandler extends XmlTagHandler{ function FranchiseHandler() { } function getName() { return "franchise"; } function handleBeginElement($parser, $attributes) { $coach = new Coach($attributes["id"], $attributes["name"]); $parser->league->coaches[$coach->id] = $coach; echo $attributes["id"] . "-" . $attributes["name"]; }}?>[/code][code]<?phpclass League{ var $id; var $coaches = array(); function League($id) { $this->id = $id; }}class Coach{ var $id; var $name; var $players = array(); function Coach($id, $name) { $this->id = $id; $this->name = $name; }}class Player{ var $id; var $internalId;}?>[/code] Quote Link to comment Share on other sites More sharing options...
mlavwilson Posted October 8, 2006 Author Share Posted October 8, 2006 *bump* Quote Link to comment Share on other sites More sharing options...
ToonMariner Posted October 9, 2006 Share Posted October 9, 2006 this may be completely off the map - but does your godaddy server allow teh short php tags '<?'as that is the opening tag of an xml declaration - so there may be some conflict Quote Link to comment Share on other sites More sharing options...
mlavwilson Posted October 9, 2006 Author Share Posted October 9, 2006 *bump*It seams that the scope of the $league varable gets lost when the parser returns. This is driving me crazy! Quote Link to comment Share on other sites More sharing options...
mlavwilson Posted October 9, 2006 Author Share Posted October 9, 2006 *bump* Quote Link to comment Share on other sites More sharing options...
mlavwilson Posted October 9, 2006 Author Share Posted October 9, 2006 *bump* Quote Link to comment Share on other sites More sharing options...
mlavwilson Posted October 10, 2006 Author Share Posted October 10, 2006 My problem was this line:[code]$this->league = $league;[/code]It needed to be:[code]$this->league = & $league;[/code] Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.