У меня есть файл csv, который мне нужно импортировать в систему на основе php, точнее, Magento. Существует поле, которое содержит описание продукта и представляет собой пробел, отформатированный для отступов, а также дефисы (-), используемые для элементов списка. Я мог бы использовать тег <pre>
и отображать его как есть, но когда я получил файл csv, каким-то образом строки, которые могли уместиться в одной строке, уже переместились в другую строку. Таким образом, попытки заменить \ r \ n на <br/>
(или использовать функцию nl2br
) безуспешно, потому что я не хочу, чтобы что-то, что может поместиться в одну строку, отображалось в двух строках.
Я не уверен, можно ли этого достичь с помощью php, подпрограммы VBA в Excel или какого-либо расширения Magento (в данный момент я использую MAGMI, и у него нет таких возможностей). Поэтому я задаю этот вопрос, имея возможность предложить решение с любым из них.
У кого-нибудь есть совет по этому поводу, пожалуйста?
РЕДАКТИРОВАТЬ::
Должно выглядеть так:
Lorem ipsum dolor sit amet, conctetur adipiscing elit.
- Praesent cursus eu eros quis laoreet.
- In tincidunt massa sed dui aliquam placerat.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam a nulla id dui semper tristique. Vivamus rutrum auctor neque, eu tincidunt magna dapibus vitae. Целое число felis mi, luctus ut mollis at, mollis nec lacus. Vestibulum et dictum turpis. Присутствует в neque sed mauris semper hendrerit.
- Vivamus rhoncus magna ipsum
- сидеть amet ullamcorper lectus eleifend ut. Sed semper dui quis accumsan suscipit.
- Donec eu lacus sed dolor fermentum fermentum.
- Curabitur iaculis molestie ante a bibendum.
Что значит:
- Текст не должен содержать разрыв строки, если он не предназначен.
- Ширина текста должна зависеть от контейнера, а не от форматирования пробелов (почему-то текст узкий и не расширяется, даже если я настраиваю ширину столбца в csv) #
- Если возможно, тире следует заменить вложением элемента списка, но на данный момент это не самая большая проблема.
В настоящее время текст выглядит следующим образом:
Lorem ipsum dolor sit amet, conctetur adipiscing elit. - Praesent cursus eu eros quis laoreet. - In tincidunt assa sed dui aliquam placerat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam a nulla id dui semper tristique. Vivamus rutrum auctor neque, eu tincidunt magna dapibus vitae. Целое число felis mi, luctus ut mollis at, mollis nec lacus. Vestibulum et dictum turpis. Присутствует в neque sed mauris semper hendrerit. - Vivamus rhoncus magna ipsum - sit amet ullamcorper lectus eleifend ut. Sed semper dui quis accumsan suscipit. - Donec eu lacus sed dolor fermentum fermentum. - Curabitur iaculis molestie ante a bibendum.
* А если я использую тег <pre>
, он выглядит так *
Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Praesent cursus eu eros quis laoreet. - In tincidunt massa sed dui aliquam placerat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam a nulla id dui semper tristique. Vivamus rutrum auctor neque, eu tincidunt magna dapibus vitae. Integer felis mi, luctus ut mollis at, mollis nec lacus. Vestibulum et dictum turpis. Praesent in neque sed mauris semper hendrerit. - Vivamus rhoncus magna ipsum - sit amet ullamcorper lectus eleifend ut. Sed semper dui quis accumsan suscipit. - Donec eu lacus sed dolor fermentum fermentum. - Curabitur iaculis molestie ante a bibendum.
Таким образом, мое описание продукта выглядит либо как один неформатированный блок (что я понимаю, потому что там нет тегов html), либо, если я попытаюсь сохранить форматирование пробелов, оно будет выглядеть слишком узким (не покрывает всю ширину контейнера).
Надеюсь, это достаточно подробно.
P.S.::
Это похоже на то, как ckeditor позволяет пользователям вводить текст, нажимать Enter и в конце, ckeditor заменяет их тегами абзацев и т. Д. Может быть, это работает на обратной стороне регулярного выражения, на которое можно ссылаться? Кто-нибудь знает об этом?