использование пробела в readfile ()

Я пытаюсь загрузить файл xlsx, используя readfile ().
Имя файла представляет собой строковую переменную ($ costing_url), которая содержит пробелы и извлекается из базы данных MySQL на основе идентификатора href’d.

Пример:

$costing_url="X:\Sys_Prod\WAResponse\Americas Division\2015\OMA - Mexico\ACA (vMUSE AOPS) AATC Costing 09-10-2015 ver(a).xlsx"

это

readfile($costing_url);

— приводит к ошибке «не удалось открыть поток».

это

readfile("X:\Sys_Prod\WAResponse\Americas Division\2015\OMA - Mexico\ACA (vMUSE AOPS) AATC Costing 09-10-2015 ver(a).xlsx");

— работает просто отлично.

если $costing_url не имеет пробелов в примере пути / имени файла A работает нормально.

Исследования показали, что двойные кавычки необходимы для размещения пробелов, что в примере B подтверждается.

Моя проблема в том, что я не могу правильно избежать двойных кавычек в readfile(), Я пробовал все возможные способы, но это не переведет строку ($costing_url) когда я пытаюсь это процитировать.

Любая помощь приветствуется.

0

Решение

Это не имеет ничего общего с пробелами. Поле в базе данных имело возврат каретки <CR> в конце поля.

Вот немного больше подробностей, если другие испытывают аналогичную проблему: я обрезал строку, чтобы удалить задний возврат каретки

$costing_url = rtrim(costing_url, "\r");

а также изменил строку readfile, чтобы быть

readfile((string)$costing_url);
0

Другие решения

не используйте «\», используйте «/»

например:
$ costing_url = «X: / Sys_Prod / WAResponse / Americas Division / 2015 / OMA — Мексика / ACA (vMUSE AOPS) AATC Costing 09-10-2015 ver (a) .xlsx»

0

По вопросам рекламы [email protected]