Recuerda la diferencia entre paths en una URL y paths en una dirección de tu S.O., son muy diferentes, no es lo mismo:
http://localhost/carpeta a C:/web/sites/carpeta, son dos direcciones muy diferentes.
Ahora PHP se ejecuta en el servidor, por lo que todas sus funciones de manejo de archivos primero actúan en base a las direcciones absolutas del SO, hay unas funciones que tienen wrappers para trabajar con HTTP, pero ese no es su uso primario, simplemente es un bonus.
Por lo que siempre intenta desde el lado de PHP usar directorios y carpetas de tu SO y deja fuera los links http a menos que necesites usarlos para alguna característica en específico.
Saludos.