2015-06-08 15 views
38

Tôi đang cố triển khai một dịch vụ đơn giản trong PHP. Dịch vụ cần trả lại chuỗi cho các yêu cầu nhất định. Tuy nhiên, khi tôi cố gắng lặp lại chuỗi, PHP bằng cách nào đó thêm \r\n vào đầu chuỗi. Tôi đang sử dụng echo để xuất phản hồi.Tại sao PHP thêm " r n" vào một chuỗi rỗng?

tôi đã cố gắng để echo một ký tự không gian:

$test = ' '; 
echo $test; 

và trong phản ứng tôi vẫn có '\r\n'.

Tôi đã thử header('Content-type: text');$string = preg_replace("\r\n", "", $string); nhưng tôi vẫn nhận được dòng mới trong phản hồi.

Tôi mới sử dụng PHP, vì vậy nếu đây là một loại khái niệm, ai đó có thể cung cấp cho tôi thông tin về nơi tôi có thể đọc về nó?

+8

@EthanBierlein ngoại trừ, không. trong khi php có một số hành vi chiến thắng/không chuẩn, nó không thêm tiền kỳ diệu '\ r \ n' vào chuỗi. – sgroves

+0

Bạn đang in 'test' không phải' $ test'. Thiếu '$'. –

Trả lời

70

Có thể ký tự này nằm trong mã nguồn của bạn ở đâu đó, ví dụ: ở cuối một tập lệnh, như: ?>\r\n.

Cách tốt nhất là không bao giờ bao gồm số ?> cuối cùng trong mỗi tệp để tránh tình cờ xuất.

Đề xuất này nằm trong Hướng dẫn về kiểu mã hóa PSR-2.

Thẻ đóng ?> PHẢI được bỏ qua khỏi các tệp chỉ chứa PHP.

Nó cũng nằm trong số manual.

Nếu tệp là mã PHP thuần túy, bạn nên bỏ qua thẻ đóng PHP ở cuối tệp. Điều này ngăn chặn các khoảng trống ngẫu nhiên hoặc các dòng mới được thêm vào sau thẻ đóng PHP, điều này có thể gây ra các hiệu ứng không mong muốn vì PHP sẽ bắt đầu đệm đầu ra khi không có ý định từ lập trình viên gửi bất kỳ đầu ra nào vào thời điểm đó trong tập lệnh.

+4

Chính xác những gì đang diễn ra. –

+8

Cũng nên cảnh giác với không gian lén lút trước thẻ mở: ' Martijn

+57

bạn có nghiêm túc không? không bao giờ bao gồm thẻ đóng là phương pháp hay nhất? –

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