При использовании Boost Tokenizer escaped_list_separator для CSV-файлов следует знать следующее:
Формат CSV указанный в wiki, указывает, что поля данных могут содержать разделители в кавычках (поддерживается):
1997, Ford, E350, «Супер, роскошный грузовик»
blockquote>Формат CSV, указанный wiki, указывает, что одинарные кавычки должны обрабатываться с помощью двух кавычек (escaped_list_separator удалит все символы кавычек):
1997, Ford, E350, «Супер» «роскошный» грузовик "
blockquote>Формат CSV не указывает, что любые символы обратной косой черты должны быть удалены (escaped_list_separator удалит все escape-символы).
вокруг, чтобы исправить поведение по умолчанию для повышения e scaped_list_separator:
- Сначала замените все символы обратной косой черты (\) двумя символами обратной косой черты (\\), чтобы они не были удалены.
- Во-вторых, замените все двойные -quotes ("") с одним символом обратной косой черты и цитатой (\ ")
Эта обходная ситуация имеет побочный эффект, что пустые поля данных, которые представлены двойная кавычка, преобразуется в одноточечный токен. При повторении через токены, нужно проверить, является ли токен одиночной кавычкой, и рассматривать его как пустую строку.
Не очень, но он работает, пока в кавычках нет новых строк.
Если вы поместите root /usr/share;
в блок server
(где был первоначальный оператор root
), URI example.com/phppgadmin/
будет работать, как и ожидалось.
Но это также раскрыло бы все содержимое каталога /usr/share
, которое вам может не понадобиться.
Вы можете поместить оператор root
в location
, но вам нужно включить все директивы, необходимые для обработки запроса.
Например:
location ^~ /phppgadmin/ {
root /usr/share;
try_files $uri $uri/ =404;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
include fastcgi_params;
}
}
Модификатор ^~
позволяет избежать любой неопределенности с URI, заканчивающимися на .php
. Подробнее см. в этом документе .