نمایش کاراکتر \n در html
بعضی از فیلدها در دیتابیسهای mysql یا … شامل یک توضیحات است که درون این توضیحات معمولا کاراکتری جهت رفتن به خط بعدی داریم. در دنیای کامپیوترها این کاراکتر \n است که برای اینکار استفاده میشود.
نمایش کاراکتر \n در html
خب شما میتوانید روشهای مختلفی را برای اینکار بکنید. در حالت عادی باید کاراکتر \n را به تگ br در اچتیامال تبدیل کنید تا این نمایش به درستی انجام شود. برای این کار در پی اچ پی میتوانید دو روش را انجام دهید:
- استفاده از تابع str_replace.
- استفاده از تابع nl2br.
استفاده از تابع str_replace برای تبدیل \n به تگ br:
<?php
$content = "Lorem ipsum dolor sit amet, \n consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut \n aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
echo str_replace("\n", "<br />", $content );;
?>
در این تگ ابتدا رشتهی مورد نظر خود را وارد میکنیم و میگوییم که به جای کاراکتر \n تگ br را جایگزین کند.
استفاده از تابع nl2br برای تبدیل \n به تگ br:
<?php $content = "Lorem ipsum dolor sit amet, \n consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut \n aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; echo nl2br($content); ?>
این تابع تمام کاراکترهای \n را به تگ br تبدیل میکند و نیازی به کار دیگری ندارید. اگر روشهای بهتر یا دیگری برای اینکار سراغ دارید برای ما بنویسید.



















آیا این کار رو میشه مستقیم در سمت کلاینت با جاوااسکریپت انجام داد؟
بله، در جاوااسکریپت هم میتوانید کاراکترهای \n را با
جایگزین کنید.
آیا این روشها روی کاراکترهای \r\n هم درست عمل میکنن؟
بله، اما در این حالت بهتر است ابتدا \r\n را به \n تبدیل کنید تا هماهنگ شود.
در پروژههای واقعی کجاها نیاز به تبدیل \n به پیدا کردید؟
این تبدیل معمولاً در نمایش متنهای ذخیرهشده در دیتابیس کاربرد دارد، مانند: (کامنتها یا نظرات کاربران – محتوای فرمها یا توضیحات محصولات – متن ایمیلها یا گزارشها که از پایگاه داده خوانده میشوند). بدون تبدیل، کاراکترهای \n در HTML هیچ تاثیری ندارند و تمام متن در یک خط نمایش داده میشود.
تا حالا پیش اومده به خاطر \n چیدمان متنهاتون در HTML به هم بخوره؟
بله، مخصوصاً وقتی محتوا مستقیم از دیتابیس یا فایلهای متنی خوانده میشود. اگر کاراکترهای \n را تبدیل نکنیم، تمام متن در یک خط ظاهر میشود و قالببندی HTML به هم میریزد. استفاده از nl2br یا str_replace این مشکل را به راحتی حل میکند.
شما بیشتر از str_replace استفاده میکنید یا nl2br؟
در اکثر مواقع nl2br راحتتر و کاربردیتر است، چون به صورت خودکار تمام کاراکترهای \n را تبدیل میکند و نیازی به مشخص کردن جایگزین ندارید. str_replace زمانی استفاده میشود که بخواهیم جایگزین سفارشی انجام دهیم یا ترکیب با دیگر رشتهها داشته باشیم.