كيف يمكنني الحفاظ على فاصل التنسيق باستخدام PHP/HTML ؟

StackOverflow https://stackoverflow.com/questions/36656

  •  09-06-2019
  •  | 
  •  

سؤال

أنا تحليل النص من ملف وتخزينه في سلسلة.المشكلة هي أن بعض من النص الأصلي يحتوي على الملفات 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(' ', '&nbsp;', $stringVariable);

عند كل استخدام هذا:

$result = str_replace(' ', '&nbsp;', $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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top