2013-06-27 2 views
0

У меня есть данные о клиенте, которые я конвертирую из CSV в json, используя скрипт php.Исключения PHP str_replace

после преобразования данные все перемешаны вместе, как это:

[{ "номер клиента": "12345", "Имя клиента": "клиент 1", "адресный код": "ГЛАВНЫЙ", «Идентификатор продавца»: «aa», «Ship to Address 1»: «12345», «Ship to Address 2»: «123, поддельная улица», «Корабль для адреса 3»: «», «Корабль в город»: «Торонто», «Корабль в провинцию»: «ОНТАРИО», «Корабль в почтовый индекс»: «A1A 1A1», «Код страны»: «CA», «Корабль в страну»: «КАНАДА», «Корабль для связи »:« John Doe »,« Корабль на телефон »:« 416-555-5555 »,« Корабль в факс »:« 416-555-5552 »,« Способ доставки »:« НАША ГРУНТА »,« Билл для адреса 1 »:« 12345 »,« Билль на адрес 2 »:« 123, поддельная улица »,« Билль на адрес 3 »:« »,« Билл в город »:« Торонто »,« Билль в провинцию »:« ОНТАРИО », «Билл к почтовому индексу»: «A1A 1A1», «Bill to Phone»: «416-555-5555», «Идентификатор налогового расписания»: «HST ON/S», «Locati «Код»: «TOR», «Идентификатор условий оплаты»: «30 DAYS PD CHECK», «Сумма кредитного лимита»: «2 000,00», «Комментарий1»: «30D PDC/10/11-NSF = WR BK ACCT», «Комментарий2»: «», «Держать»: «1», «Прейскурант»: «EASTGEN»}]

.

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

$ newArray = str_replace (":", ":", json_encode ($ newArray));

$ newArray = str_replace ("[", "[\ n", $ newArray);

$ newArray = str_replace ("{", "{\ n", $ newArray);

$ newArray = str_replace (",", ", \ n", $ newArray);

$ newArray = str_replace ("},", "\ n},", $ newArray);

$ newArray = nl2br ($ newArray);

.

проблема у меня в том, что выход будет выглядеть так:

[

{

"Номер клиента": "12345",

"Имя клиента": "клиент 1",

"Адрес код": "ОСНОВНОЙ",

"Salesperson ID": "аа",

"Корабль Адрес 1": "12345",

"Корабль Адрес 2": "123,

поддельной улица",

"Корабль Адрес 3": "",

"Корабль-Сити": "Торонто",

"Корабль провинции": "ОНТАРИО",

"Корабль Почтовый индекс": "A1A 1A1",

"Код страны": "CA",

"Корабль Страна": "CANADA",

«Доставлено Контактное лицо ": "John Doe",

"Корабль на телефон": "416-555-5555",

"Корабль факс": "416-555-5552",

" Способ доставки ":" НАША ГРУНТА ",

"Билл Адрес 1": "12345",

"Билла Адрес 2": "123,

поддельной улица",

"Билл Адрес 3": "" ,

"Билл-Сити": "Торонто",

"Билл провинции": "ОНТАРИО",

«Бил л в почтовый индекс ": "A1A 1A1",

"Билл Телефон": "416-555-5555",

"Tax ID Расписание": "HST ON/S",

"Код места": "ТОР",

"Условия оплаты ID": "30 ДНЕЙ PD CHECK",

"сумма кредитного лимита": «2,

000.00" ,

"Comment1": "30D PDC/10/11-НФС = WR БК АССТ",

"Comment2": "",

"Hold": "1",

«Прайс-лист»: «EASTGEN»}]

Обратите внимание, корабль Адрес 2, Билл Адрес 2, и сумма кредитного лимита из-за моей str_replace он добавил разрыв строки есть проблема в том, что.. app i use, который читает, что json нуждается в том, чтобы он на той же самой строке правильно регистрировался. Есть ли способ, чтобы я мог заменить ум запятой h Разрыв строки ЕСЛИ они являются частью адреса или другой переменной?

+0

Я думаю, вы должны использовать regexp –

+0

@NDLombardi, что позволит мне указывать исключения, например, если запятая предшествует номеру (это условие похоже на работу) – degett

+0

Конечно, если вы можете попробовать следующее: [ http://regexpal.com/](http://regexpal.com/) –

ответ

1

Почему вы изменяете строку в кодировке JSON? Если вы просто пытаетесь сделать его «красивым», тогда вы должны использовать json_encode($str, JSON_PRETTY_PRINT) - не делайте никаких других изменений в строке.

+0

Это сработало для работы! Спасибо. – degett

+0

Нет проблем; пожалуйста, отметьте как ответ! благодаря –