Você pode tentar algo assim:
find . -name '*.php' -exec sh -c \
'PREFIX=${1//[!/]/}; PREFIX=${PREFIX//\//..\/}; ...' sh {} \;
Isso definirá PREFIX para ../ quando o arquivo encontrado for dir/filename . Em seguida, você pode inserir o comando sed na posição ... , fazendo uso da variável $PREFIX da shell.
Isso requer um shell que tenha a expansão ${var//find/repl} . Isso não é especificado por POSIX, mas Bash e algumas implementações de ash o possuem. Se o seu não, você teria que usar outra coisa para fazer a manipulação do prefixo. Nesse caso, eu usaria um único processo awk para fazer a manipulação do prefixo em sua cláusula BEGIN , então a substituição em cada linha do arquivo (em vez de um processo sed separado).