Array dereferencing was added in PHP5.4. Your server has v5.3.26, so this
explode('public://',$file->uri)[1];
isn't valid syntax.
You either need to upgrade to 5.4 (Homebrew makes that easy), or change your code:
$parts = explode('public://',$file->uri);
$variables['path'] = $base_url . "/sites/default/files/" . $parts[1];