Lỗi khi dùng explode php

Em có một đoạn code php như sau:

	function encode($str) {
		$arr = explode('
', $str);
		
		for ($i = 0; $i < count($arr); $i++) {
			$arr[$i] = $arr[$i] . "<br />";
		}
		
		$str = implode('
', $arr);
		
		return $str;
	}

Nếu chạy trực tiếp trong file php này:

echo encode("Xuống dòng
Xuống dòng
Hello");

Thì nó sẽ ra kết quả:

Xuống dòng <br />
Xuống dòng<br />
Hello<br />

Nhưng khi dùng ajax hay form html để gửi string đến file php để chạy thì nó lại ra kết quả:

Xuống dòng
Xuống dòng
Hello<br />

Ai biết vì sao nó lỗi không ạ?

Bạn explode ký tự nào? Mình không hiểu code của bạn chỗ: $arr = explode(’
', $str); nghĩa là bạn dùng ký tự rỗng hoặc không ký tự? Bạn phải là:

$arr = explode("\n", $str);
2 Likes

Đó là ký tự xuống dòng anh ạ. Em test thử code chạy bình thường ở file php rồi :frowning:

Thế vấn đề là Ajax khi bạn trả về thì bạn biết đến sự tồn tại của hàm nl2br không? Nếu biết, thì việc explode của bạn trên là hơi… thừa :smiley:

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?