Преобразование пути Windows в LinuxLinux

Ответить
Anonymous
 Преобразование пути Windows в Linux

Сообщение Anonymous »

Мне нужно открывать файлы на файловом сервере Windows с машины Linux с помощью php. К сожалению, существует более 700 тысяч файлов, и они выполняли всевозможные типичные имена файлов Windows. Запятые, апострофы, амперсанды, круглые скобки, пробелы и т. д. Они сделали с этими именами файлов практически все, что вы можете себе представить. Есть ли у кого-нибудь подпрограмма/функция/и т. д.... которая позволит избежать всего, что может потребоваться экранировать, чтобы превратить это в действительный путь Linux, чтобы мой php-скрипт мог открыть каждый из 700 тысяч файлов?
Спасибо!
Грег
Сейчас я использую это.... 1, это ужасно. 2, оно растет каждый раз, когда я сталкиваюсь с чем-то еще, что они сделали...

Код: Выделить всё

        $path = preg_replace('/\s+/', '\\ ', $path);
$path = preg_replace('/\(/', '\\(', $path);
$path = preg_replace('/\)/', '\\)', $path);
$path = preg_replace('/\'/', '\\\'', $path);
$path = preg_replace('/\,/', '\\,', $path);
$path = preg_replace('/\&/', '\\&', $path);
Например, вот блок, в котором я читаю имя файла документа, преобразую его в текст и сохраняю вывод текста в ячейке таблицы. Однако для запуска преобразования мне нужна команда, которая сможет найти файл.

Код: Выделить всё

        $md5sum = rtrim(`md5sum -z "$path" | awk {'print $1'}`);
$contents = mysqli_real_escape_string($dbh,`catdoc "$path"`);
$sql3 = "insert into contents (path,type,md5sum,content) values ('".$path."','".$type."','".$md5sum."','".$contents."')";
$results3 = mysqli_query($dbh,$sql3);
$path будет заполнен из результата sql и будет содержать что-то вроде этого:
/mnt/windows/Clients/LORI'S OPEN FILES/morecharacters , andnowevenmore-dissolution-AT/Correspondences/Это образец и текстовый файл.doc

Подробнее здесь: https://stackoverflow.com/questions/785 ... h-to-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»