Ah, it's an issue of operator precedence. Wrap your ?: statements in parentheses
'<tr '.(($cont_rows % 2) ? 'class="contender_even"' : 'class="contender_odd"').'>';
Apart from that, it looks fine to me. Though, you might as well change
$standing_text .= '<td>'.$rank.'</td>';
foreach(array('rank_delta', 'driver', 'points', 'behind', 'starts', 'poles',
'wins', 'top5', 'top10', 'dnf', 'winnings') as $stat)
{
$standing_text .= '<td>'.$standing[$stat].'</td>';
}
To
foreach(array('rank', 'rank_delta', 'driver', 'points', 'behind', 'starts', 'poles',
'wins', 'top5', 'top10', 'dnf', 'winnings') as $stat)
{
$standing_text .= '<td>'.$standing[$stat].'</td>';
}