$ticker = json_decode(file_get_contents('http://drayah.no.de/metals/latest'), TRUE);
$silver = $ticker['silver']['quote'];
echo round($silver/31.1034768, $decimals);
?>
drayah's node.js box parses the prices from kitco.com.
Update: Here's a version that fallbacks to http://services.packetizer.com/spotprices/ if drayah's service is down (I'm keeping the old one for posterity):
$drayah = json_decode(file_get_contents('http://drayah.no.de/metals/latest'), TRUE);
if ($drayah['silver']['quote'] > 0) {
$silver = $drayah['silver']['quote'];
} else {
$packetizer = new SimpleXMLElement(file_get_contents('http://services.packetizer.com/spotprices/?f=xml'));
$silver = $packetizer->silver;
}
echo round($silver/31.1034768, $decimals);
?>