Trilateration itself is not cpu intensive at all. But you can do it for each combination of 3 distances from the total set. If you do that then you're running it n(n-1)(n-2)/6 times. So that's O(n^3) which would be a big problem if we were dealing with a lot of distances. In my implementation most of the time is spent checking distances but it's still fast enough up to about 15 distances which takes around a second on my machine. I have thought of various optimisations, mostly taking advantage of the way distances are added incrementally (e.g. only testing the n/(n-3) new candidate regions along with the leading current candidate), but I haven't bothered implementing many of them yet.
I don't think anyone here has implemented trilateration in php. It's pretty straight forward though. Should be easy to implement from the wikipedia article. Alternatively you could port it from my javascript (trilateration.js/getCandidates()).
Any way to push out the calculation to the client machines? For example, for a set of distances, send to the client all neighboring points, have the client perform the calculation, and send back the result? I realize this requires a piece of software, or perhaps just javascript in the browser.