چرا \n یا \t در php کار نمیکنن
در PHP، دستور echo
برای نمایش رشتهها در مرورگر استفاده میشود. اما وقتی از کاراکترهای کنترلی \n
برای رفتن به خط بعد استفاده میکنید، این کار تنها در خروجیهای متنی (مثل خط فرمان) مؤثر است. مرورگرها فاصله خطی را از طریق HTML تفسیر میکنند، نه کاراکترهای کنترلی مانند \n
.
برای نمایش خط جدید در مرورگر، باید از تگهای HTML مانند <br>
استفاده کنید. کد زیر این مشکل را حل میکند:
echo "One line after<br> another line";
در این مثال، مرورگر از تگ <br>
برای رفتن به خط بعدی استفاده میکند. اگر کد را در محیط خط فرمان یا کنسول اجرا میکردید، \n
کار میکرد، اما در مرورگر باید از عناصر HTML استفاده کنید.
منظور از خروجیهای متنی (مثل خط فرمان) چیست ؟
برای نمایش متن بدون نیاز به تفسیر HTML، چندین روش وجود دارد که میتوانید از آنها برای اطمینان از اینکه مرورگر تگهای HTML را تفسیر نکند و متن را به صورت خام نمایش دهد، استفاده کنید. در ادامه برخی از این روشها را توضیح میدهم:
1. استفاده از تابع htmlspecialchars()
تابع htmlspecialchars()
کاراکترهای ویژه HTML مانند <
, >
, &
و " "
را به مقادیر HTML entity تبدیل میکند، بنابراین مرورگر آنها را به عنوان HTML تفسیر نمیکند و به صورت متن خام نمایش میدهد.
مثال:
echo htmlspecialchars("<b>This is bold text</b>");
خروجی:
<b>This is bold text</b>
در اینجا تگ <b>
به صورت متن نمایش داده میشود و به عنوان HTML تفسیر نمیشود.
2. استفاده از تگ <pre> در HTML
تگ <pre>
در HTML، متنی که درون آن قرار دارد را بدون تغییر و با تمامی فاصلهها و خطهای جدید، دقیقاً به همان شکلی که نوشته شده است، نمایش میدهد.
مثال:
echo "<pre>This is a text\nwith line breaks and spaces.</pre>";
خروجی در مرورگر:
This is a text
with line breaks and spaces.
در این مثال، \n
و فاصلهها به همان صورتی که هستند نمایش داده میشوند.
3. استفاده از تابع strip_tags()
تابع strip_tags()
تمامی تگهای HTML را از یک رشته حذف میکند و فقط متن خالص را به عنوان خروجی نمایش میدهد. این روش در صورتی مفید است که بخواهید HTML را حذف کنید و فقط متن ساده باقی بماند.
مثال:
echo strip_tags("<b>This is bold text</b>");
خروجی:
This is bold text
در اینجا، تگهای HTML حذف شده و فقط متن باقی مانده است.
نتیجهگیری:
- اگر میخواهید تگهای HTML تفسیر نشوند، میتوانید از تابع
htmlspecialchars()
استفاده کنید. - اگر میخواهید متنی را با فاصلهها و خطوط جدید به همان صورت نمایش دهید، میتوانید از تگ
<pre>
استفاده کنید. - برای حذف تگهای HTML و نمایش متن خالص، تابع
strip_tags()
بهترین گزینه است.
این روشها به شما کمک میکنند تا متن خود را به شکلی که میخواهید بدون تفسیر HTML نمایش دهید.