Często znajduję, że mam pliki w moich projektach, które muszą być dostępne z systemu plików, a także przeglądarki użytkowników. Jednym z przykładów jest przesyłanie zdjęć. Potrzebuję dostępu do plików w systemie plików, aby móc używać GD do modyfikowania obrazów lub przenoszenia ich. Ale moi użytkownicy muszą mieć także dostęp do plików z adresu URL, takiego jak example.com/uploads/myphoto.jpg
.PHP - Konwertuj ścieżkę do systemu plików na URL
Ponieważ ścieżka przesyłania zwykle odpowiada adresowi URL, utworzyłem funkcję, która wydaje się działać przez większość czasu. Weź te ścieżki na przykład:
File System /var/www/example.com/uploads/myphoto.jpg
Gdybym miał zmienny zestaw do czegoś jak /var/www/example.com/
, wtedy mógłbym odjąć go od ścieżki systemu plików, a następnie użyć go jako adresu URL obrazu.
/**
* Remove a given file system path from the file/path string.
* If the file/path does not contain the given path - return FALSE.
* @param string $file
* @param string $path
* @return mixed
*/
function remove_path($file, $path = UPLOAD_PATH) {
if(strpos($file, $path) !== FALSE) {
return substr($file, strlen($path));
}
}
$file = /var/www/example.com/uploads/myphoto.jpg;
print remove_path($file, /var/www/site.com/);
//prints "uploads/myphoto.jpg"
Czy ktoś wie o lepszy sposób radzenia sobie z tym?
Dzięki. Chociaż może to być podatne na błędy, jest to dokładnie to, czego potrzebuję w moim przypadku. –