Простое решение состоит в том, чтобы разделить путь на части, а затем манипулировать массивом, прежде чем снова соединить его:
join("/", array_slice(explode("/", $path), 5));
Конечно, если вы хотите удалить этот конкретный путь, вы также можете использовать регулярное выражение:
preg_replace('~^/home/john/smith/web/~', '', $path);
Одно слово совета. Если ваше приложение много работает с путями, может быть неплохо создать класс для представления путей, чтобы инкапсулировать логику, вместо того, чтобы выполнять множество манипуляций со строками повсеместно. Это особенно хорошая идея, если вы смешиваете абсолютные и относительные пути.