$drivetracker = simplexml_load_file('geot_5980.xml');
$currentDrive = "init";
$save = 0;
$drive = 0;
$break = 0;
$display = 0;
$changeDrive = 0;
$endhalf = 0;
$data = array();
$driveArr = array();
foreach ($drivetracker->plays->qtr as $qtr):
foreach ($qtr->play as $myplay):
$hasball = (string)$myplay['hasball'];
$play = (string)$myplay['spot'];
$down = (string)$myplay['down'];
$togo = (string)$myplay['togo'];
$type = (string)$myplay['type'];
$text = (string)$myplay['text'];
$hasball = mb_convert_encoding($hasball, 'UTF-8');
$play = mb_convert_encoding($play, 'UTF-8');
$down = mb_convert_encoding($down, 'UTF-8');
$togo = mb_convert_encoding($togo, 'UTF-8');
$type = mb_convert_encoding($type, 'UTF-8');
$text = mb_convert_encoding($text, 'UTF-8');
if ($save == 0 && strpos($text, 'start') !== FALSE){
$save = 1;
$break = 1;
} else if ($save == 1 && strpos($text, 'start') !== FALSE) {
$break = 1;
} else if ($save == 1 && strpos($text, 'Start') !== FALSE) {
$break = 1;
} else if ($save == 1 && strpos($text, 'ball') !== FALSE) {
$break = 1;
} else if ($save == 1 && strpos($text, 'Timeout') !== FALSE) {
$break = 1;
} else if ($save == 1 && strpos($text, 'and') !== FALSE) {
$break = 1;
}
//ignore all plays when save is false
if($save == 0){$break = 1;}
if($break == 0){
//drive check
if (strpos($currentDrive, 'init') !== FALSE){
$currentDrive = $hasball;
$drive += 1;
} else if ($currentDrive != $hasball){
$currentDrive = $hasball;
$drive += 1;
$display = 1;
} else if (strpos($text, 'End of half') !== FALSE) { // end of half or game so new drive
$endhalf = 1;
}
if($drive == $driveid){
array_push($data, array("text" => $text,
"spot" => $play,
"ball" => $hasball,
"togo" => $togo,
"type" => $type,
"drive"=> $drive)
);
}
if($endhalf == 1) {
$drive += 1;
}
}
//resetter after each iteration
$break = 0;
$display = 0;
$endhalf = 0;
endforeach;
endforeach;
print_r($data);
echo json_encode($data);
print_r($data) 给出,
Array ( [0] => Array ( [text] => Godhigh, R. rush for 2 yards to the GT27 (Canty, W). [spot] => GT25 [ball] => GT [togo] => 10 [type] => R [drive] => 7 ) [1] => Array ( [text] => Days, S. rush for 5 yards to the GT32 (Woodruff, J;Brown, Ky). [spot] => GT27 [ball] => GT [togo] => 8 [type] => R [drive] => 7 ) [2] => Array ( [text] => Sims, D. rush for 6 yards to the GT38, 1ST DOWN GT (Anunike, K;Sarmiento, S). [spot] => GT32 [ball] => GT [togo] => 3 [type] => R [drive] => 7 ) [3] => Array ( [text] => Godhigh, R. rush for 18 yards to the DU44, 1ST DOWN GT (Cockrell, R). [spot] => GT38 [ball] => GT [togo] => 10 [type] => R [drive] => 7 ) [4] => Array ( [text] => Lee, V. pass complete to Greene, J. for 5 yards to the DU39 (Foster, T). [spot] => DU44 [ball] => GT [togo] => 10 [type] => P [drive] => 7 ) [5] => Array ( [text] => Laskey, Z. rush for 9 yards to the DU35 (Sink, N). [spot] => DU44 [ball] => GT [togo] => 10 [type] => R [drive] => 7 ) [6] => Array ( [text] => Laskey, Z. rush for 5 yards to the DU30, 1ST DOWN GT (Canty, W;France, C). [spot] => DU35 [ball] => GT [togo] => 1 [type] => R [drive] => 7 ) [7] => Array ( [text] => Laskey, Z. rush for 4 yards to the DU26 (Sink, N). [spot] => DU30 [ball] => GT [togo] => 10 [type] => R [drive] => 7 ) [8] => Array ( [text] => Lee, V. rush for 3 yards to the DU23 (Brown, Ky). [spot] => DU26 [ball] => GT [togo] => 6 [type] => R [drive] => 7 ) [9] => Array ( [text] => Laskey, Z. rush for 5 yards to the DU18, 1ST DOWN GT (Canty, W). [spot] => DU23 [ball] => GT [togo] => 3 [type] => R [drive] => 7 ) [10] => Array ( [text] => Smith, O. rush for 8 yards to the DU10 (France, C). [spot] => DU18 [ball] => GT [togo] => 10 [type] => R [drive] => 7 ) [11] => Array ( [text] => Lee, V. rush for 4 yards to the DU6, 1ST DOWN GT (France, C). [spot] => DU10 [ball] => GT [togo] => 2 [type] => R [drive] => 7 ) [12] => Array ( [text] => Laskey, Z. rush for 3 yards to the DU3 (Helton, D;Woodruff, J). [spot] => DU06 [ball] => GT [togo] => 0 [type] => R [drive] => 7 ) [13] => Array ( [text] => Laskey, Z. rush for no gain to the DU3 (Woodruff, J;Brown, Ky). [spot] => DU03 [ball] => GT [togo] => 0 [type] => R [drive] => 7 ) [14] => Array ( [text] => Smith, O. rush for 1 yard to the DU2 (France, C). [spot] => DU03 [ball] => GT [togo] => 0 [type] => R [drive] => 7 ) [15] => Array ( [text] => Lee, V. rush for 2 yards to the DU0, TOUCHDOWN, clock 04:34. [spot] => DU02 [ball] => GT [togo] => 0 [type] => R [drive] => 7 ) [16] => Array ( [text] => Tanner, C. kick attempt good. [spot] => DU03 [ball] => GT [togo] => 0 [type] => X [drive] => 7 ) [17] => Array ( [text] => Tanner, C. kickoff 51 yards to the DU14, Butler, L return 16 yards to the DU30 (Noble, D.). [spot] => GT35 [ball] => GT [togo] => 0 [type] => K [drive] => 7 ) )
json_encode($data) 给出空白...
有人知道为什么这个由xml信息组成的php数组不能通过json编码吗?