2015-02-17 3 views
2

Я пытаюсь разместить веб-сайт PHP, разработанный на Mac в IIS. У меня есть форма для загрузки изображений. Путь к изображениям сохраняется в базе данных в стиле Windows (т. Е. \ Images \ foo.jpeg). В моем шаблоне я использую эти изображения в качестве фона, используя css. Из-за путей в стиле Windows изображения не отображаются, что приводит к неправильному пути.PHP: преобразовать путь к пути unix

Вопрос: Как преобразовать путь Windows в действительный URL. Поэтому \ uploads \ images \ 25.jpeg следует изменить на /uploads/images/25.jpeg. Есть ли функция, подобная realpath, которая может это сделать, или я должен использовать грязный путь с помощью str_replace или regex?

+1

'str_replace' или вы можете просто использовать'/'в пути к окну. Оба '\\' 'и'/'работают в окнах. – AbraCadaver

+0

@AbraCadaver, я не знаю о Mac, но Unix также чувствителен к регистру, а Windows - нет. – Sablefoste

+0

, если они уже созданы, я думаю, str_replace не будет грязным способом. Если вы хотите сохранить их соответственно, я думаю, вам нужно обновить свой вопрос. Я предполагаю, что есть способ изменить поведение IIS в отношении путей, к сожалению, я понятия не имею, как это сделать. Удачи. –

ответ

0

Вы конвертируете все пути Windows в путь UNIX, используя следующую функцию. это основная функция WordPress и хорошо протестирована

function wp_normalize_path($path) { 
    $path = str_replace('\\', '/', $path); 
    $path = preg_replace('|(?<=.)/+|', '/', $path); 
    if (':' === substr($path, 1, 1)) { 
     $path = ucfirst($path); 
    } 
    return $path; 
} 

Пример:

E:\\xampp\\htdocs\\php\\index.php 

Выход:

E:/xampp/htdocs/php/index.php 
0

Попробуйте использовать DIRECTORY_SEPARATOR вместо '/' или '\' для путей (dir constants). Эта константа будет распознавать ОС для вас и будет использовать на ней правильную базу разделителей.

Чтобы изменить OLDPATH вы можете попробовать использовать:

str_replace("/", DIRECTORY_SEPARATOR, 'example/bla/bla.php'); 

Как наконечник: __FILE__, __DIR__ или имя папки() может помочь вам в многих ситуациях, чтобы получить правильный путь на работающей ОС.

Смежные вопросы