จะเพิ่มตัวแบ่งบรรทัดภายใน echo ใน PHP ได้อย่างไร? [ปิด]


92

ฉันพยายามเพิ่มตัวแบ่งบรรทัดสำหรับประโยคและฉันเพิ่ม/n ในโค้ดต่อไปนี้

echo "Thanks for your email. /n  Your orders details are below:".PHP_EOL;
echo 'Thanks for your email. /n  Your orders details are below:'.PHP_EOL;

ด้วยเหตุผลบางประการฉันได้รับข้อผิดพลาดของเซิร์ฟเวอร์เป็นผล ฉันจะแก้ไขได้อย่างไร?


4
\nตัวอักษรที่ใช้ทับขวานี้ไม่ได้หนีออกมาได้อย่างถูกต้อง แต่ข้อผิดพลาดของเซิร์ฟเวอร์ไม่เกี่ยวข้องกับการลองครั้งนี้ดูในบันทึกของ apacheและตรวจสอบ__(arg)docu
Marek Sebera

1
ยินดีต้อนรับสู่ Stackoverflow โปรดปฏิบัติตามคำแนะนำในการถามที่คุณต้องการเพื่อยืนยันก่อนโพสต์คำถามใด ๆ โปรดทราบว่ามีเพียงคุณเท่านั้นที่ต้องการบางสิ่งบางอย่างและคุณถามตัวเองว่าโปรแกรมนั้นไม่มีคุณสมบัติเป็นคำถามเกี่ยวกับการเขียนโปรแกรมได้อย่างไร
hakre

คำตอบ:


255

\nเป็นการแบ่งบรรทัด /nไม่ใช่.


ใช้\nกับ

1. สะท้อนไปที่หน้าโดยตรง

ตอนนี้หากคุณพยายามสะท้อนสตริงไปที่หน้า:

echo  "kings \n garden";

ผลลัพธ์จะเป็น:

kings garden

คุณจะไม่gardenขึ้นบรรทัดใหม่เนื่องจาก PHP เป็นภาษาฝั่งเซิร์ฟเวอร์และคุณกำลังส่งเอาต์พุตเป็น HTML คุณต้องสร้างตัวแบ่งบรรทัดใน HTML HTML \nไม่เข้าใจ คุณต้องใช้nl2br()ฟังก์ชันนี้

มันคืออะไร:

ส่งคืนสตริงที่มี<br />หรือ<br>แทรกก่อนขึ้นบรรทัดใหม่ทั้งหมด (\ r \ n, \ n \ r, \ n และ \ r)

echo  nl2br ("kings \n garden");

เอาต์พุต

kings
garden

หมายเหตุตรวจสอบให้แน่ใจว่าคุณกำลังสะท้อน / พิมพ์\nในเครื่องหมายคำพูดคู่มิฉะนั้นจะแสดงผลตามตัวอักษรเป็น \ n เนื่องจาก php interpreter แยกวิเคราะห์สตริงในเครื่องหมายคำพูดเดี่ยวที่มีแนวคิดตามที่เป็นอยู่

so "\n" not '\n'

2. เขียนลงในไฟล์ข้อความ

ตอนนี้ถ้าคุณ echo เป็นไฟล์ข้อความคุณสามารถใช้ได้\nและมันจะสะท้อนไปยังบรรทัดใหม่เช่น:

$myfile = fopen("test.txt", "w+")  ;

$txt = "kings \n garden";
fwrite($myfile, $txt);
fclose($myfile);
 

ผลลัพธ์จะเป็น:

kings
 garden

1
การขยายออกไปข้างต้น ใช้งานได้ - ตัวอย่าง -> echo "<html>". "\ n"; หรือก้อง "สวนกษัตริย์" "\ n"; ซึ่งจะเพิ่มตัวแบ่งบรรทัดหลังบรรทัดแรก Google พาฉันมาที่นี่เมื่อฉันต้องการเพิ่มตัวแบ่งบรรทัดหลังจากเสียงสะท้อน
MarcoZen

18

คุณต้องใช้ br เมื่อใช้ echo เช่นนี้:

echo "Thanks for your email" ."<br>". "Your orders details are below:"

และมันจะทำงานได้อย่างถูกต้อง


1
สิ่งนี้ใช้ไม่ได้กับเอกสาร html
MarcoZen

1
สิ่งนี้จะไม่ได้ผลเมื่อคุณสะท้อนพวกเขาในไฟล์ภาษาฝั่ง php / เซิร์ฟเวอร์
MarcoZen

13

อักขระบรรทัดใหม่เป็น\nดังนี้:

echo __("Thanks for your email.\n<br />\n<br />Your order's details are below:", 'jigoshop');

คำนำหน้าคืออะไร__(ขีดล่างสองอัน)?
Peter Mortensen

1
@PeterMortensen เป็นฟังก์ชันในกรอบ PHP บางอย่างเพื่อรองรับความเป็นสากล โพสต์เดิมใช้มันซึ่งเป็นเหตุผลที่ฉันเพิ่มมันลงในคำตอบของฉัน
noetix

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.