كيف يمكنني الحفاظ على فاصل التنسيق باستخدام PHP/HTML ؟
سؤال
أنا تحليل النص من ملف وتخزينه في سلسلة.المشكلة هي أن بعض من النص الأصلي يحتوي على الملفات ASCII art
وغيرها التي أود أن الحفاظ عليها.عندما طباعة السلسلة على HTML page
, حتى لو كان لديها نفس التنسيق و كل شيء لأنه في HTML
, فإن تباعد خط فواصل لا يتم الاحتفاظ.ما هي أفضل طريقة لطباعة النص في HTML
بالضبط كما كان في النص الأصلي الملف ؟
أود أن أعطي مثالا ، ولكن للأسف لم أكن قادرة على الحصول على عرض بشكل صحيح في محرر تخفيض السعر :P
في الأساس, أود اقتراحات حول كيفية عرض ASCII art in HTML
.
المحلول
استخدام <pre> الوسم (قبل مهيأ), التي سوف تستخدم أحادية متباعدة الخط (الفن) والحفاظ على كل المساحة البيضاء
<pre>
text goes here and here
and here and here Some out here
▄ ▄█▄ █▄ ▄
▄█▀█▓ ▄▓▀▀█▀ ▀▀▀█▓▀▀ ▀▀ ▄█▀█▓▀▀▀▀▀▓▄▀██▀▀
██ ██ ▀██▄▄ ▄█ ▀ ░▒ ░▒ ██ ██ ▄█▄ █▀ ██
█▓▄▀██ ▄ ▀█▌▓█ ▒▓ ▒▓ █▓▄▀██ ▓█ ▀▄ █▓
█▒ █▓ ██▄▓▀ ▀█▄▄█▄▓█ ▓█ █▒ █▓ ▒█ ▓█▄ ▒
▀▒ ▀ ▀ █▀ ▀▒ ▀ █▀ ░
</pre>
قد تحتاج إلى تحويل أي <'s <'s
نصائح أخرى
على <pre>
و </pre>
قد لا تكون مثالية في textarea الخ..
عند الرغبة في الحفاظ على الخط الجديد \n
و \n\r
استخدام nl2br كما ذكر UnkwnTech و براد صولجان.
عند الرغبة في الحفاظ على المساحات استخدام str_replace:
str_replace(' ', ' ', $stringVariable);
عند كل استخدام هذا:
$result = str_replace(' ', ' ', $stringVariable);
$result = nl2br($result);
عند طباعة بيانات الاستخدام nl2br()
لتحويل \n
و \r\n
في <br>
لجميع أولئك searchng من أجل الحفاظ على النص جلبه من قاعدة البيانات ، هذا عملت بالنسبة لي ، الإعداد المغلق على النحو التالي ،
pre {
white-space: pre-line;
text-align : left;
}
في html :
<pre >
<?php echo htmlentities($yourText ) ; ?>
</pre>