PHP: Como resolver um URL relativo

Eu preciso de uma função que, dada uma URL relativa e uma base, retorne uma URL absoluta. Eu procurei e encontrei muitas funções que fazem isso de maneiras diferentes.

resolve("../abc.png", "http://example.com/path/thing?foo=bar")
# returns http://example.com/abc.png

Existe um caminho canônico?

Neste site eu vejo ótimos exemplos para python e c #, vamos pegar uma solução PHP.

questionAnswers(7)

yourAnswerToTheQuestion