using dns round robin (few A records in dns) you can only balance cpu usage between two or more servers. But when one server is down then 50% or more ppl wont be able to access working server. And when you change dns records it will take time, because there is wrong A record in their dns cache.
No doubt it is possible to redirect ppl using php header() to working server but this requre a redirection site at some server - that have same change of breakdown
So there is no way to FULL redundancy. If you are scared about some server going down then you probably should lower TTL in your dns records so records in dns caches will change quicly on change. You can also make program that will delete invalid dns A records as soon as something will be wrong. And making round robin entries will reduce number of ppl that get site down (50% for two servers, 33% for 3 servers)