2012-01-16 26 views
5

Tôi đang viết một tin nhắn e-mail để gửi khi gửi biểu mẫu. Vì lý do nào đó, ký tự \n hiển thị chính xác trên tất cả các dòng nhưng một. Tôi không thể thấy bất kỳ sự khác biệt giữa dòng này và những người khác, do đó, không thể tìm ra lý do tại sao nó không hoạt động. Mã dưới đây, cùng với đầu ra mà tôi nhận được cũng như danh sách các biến được sử dụng.Tại sao n không hoạt động trên một dòng của tập lệnh PHP của tôi, nhưng vẫn ổn trên tất cả các tập lệnh khác?

Như bạn có thể thấy từ email, số \n ở cuối dòng 'Địa chỉ cơ quan' không hoạt động, do đó, "Tên công ty" chỉ đi thẳng, thay vì ở trên dòng tiếp theo. Sau đó, \n sau khi tên công ty hoạt động tốt, vì vậy địa chỉ nhà là trên dòng tiếp theo.

Dưới đây là các mã cho thông điệp:

$xmsg = "First Name: $firstname\n" . 
     "Last Name: $lastname\n" . 
    "Work Tel: $worktel\n" . 
    "Home Tel: $hometel\n" . 
    "Mobile Tel: $mobtel\n" . 
    "E-mail: $email\n" . 
    "Work Address: $workad\n" . 
    "Company Name: $company\n" . 
    "Home Address: $homead\n" . 

Dưới đây là kết quả:

First Name: Joe 
Last Name: Bloggs 
Work Tel:
Home Tel: 0987654321 
Mobile Tel: 0789456123 
E-mail: [email protected] 
Work Address: Bloggoffice, Joe Street, London, N1 J0E Company Name: 
Home Address: 9 Blogg Street, Borough of Joe, London, SE4 J03 

Và trong trường hợp đó là hữu ích, đây là danh sách các biến sử dụng:

$firstname = $_SESSION['firstname']; 
$lastname = $_SESSION['lastname']; 
$worktel = $_SESSION['worktel']; 
$hometel = $_SESSION['privtel']; 
$mobtel = $_SESSION['mobtel']; 
$email = $_SESSION['email']; 
$company = $_SESSION['companyname']; 
$workad = $_SESSION['workad1'] . ', ' . $_SESSION['workad2'] . ', ' .  $_SESSION['workad3'] . ', ' . $_SESSION['workpostcode']; 
$homead = $_SESSION['homead1'] . ', ' . $_SESSION['homead2'] . ', ' . $_SESSION['homead3'] . ', ' . $_SESSION['homepostcode']; 

Tôi rất biết ơn vì bất kỳ sự giúp đỡ nào, tôi hy vọng đó không chỉ là một sai lầm ngu ngốc mà tôi đã bỏ qua!

+6

'var_dump ($ workad)' nói gì? –

+3

Vui lòng [không thêm chữ ký hoặc khẩu hiệu vào bài đăng của bạn] (http://stackoverflow.com/faq#signatures). – meagar

+0

trên một mặt lưu ý, nó không thực sự là một thực hành tốt để lộn xộn lên không gian tên phiên của bạn với tất cả các biến – jere

Trả lời

1

Sử dụng PHP_EOL hằng số có vẻ chính xác hơn sử dụng \n. Bởi vì PHP_EOL là kết thúc chính xác của ký tự dòng cho mọi nền tảng.

+0

Nó thực sự không quan trọng mặc dù. Không bao giờ có vấn đề với kết thúc dòng unix đồng bằng, ngoại trừ khi bạn cố gắng sử dụng một chương trình cửa sổ cũ để mở chúng (nhưng ai làm điều đó?) – Evert

+0

Điều này dường như đã giải quyết được vấn đề, đó là tuyệt vời, cảm ơn! – Chris

Các vấn đề liên quan