2015-06-28 16 views
5

tôi đang cố gắng để có được tất cả các hàng từ cơ sở dữ liệu MySQL của tôi bằng cách sử dụng đoạn mã sau:Preserve ngắt dòng trong fetch_assoc mysqli() PHP

$sql = "SELECT * FROM myTable"; 
$result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) { 
     $output[]=$row; 
    } 
echo json_encode($output); 

Câu hỏi của tôi là, Làm thế nào để bảo vệ ngắt dòng sử dụng mã này? Tôi có thể bảo vệ ngắt dòng sử dụng nl2br() khi tôi cần một chuỗi cụ thể ví dụ

nl2br($_row['fieldName']); 

nhưng tôi muốn biết Làm thế nào tôi có thể sử dụng nl2br cùng() khi lấy kết quả trong một mảng?

Tôi cũng đã gọi this question nhưng điều này chỉ giải thích cho một chuỗi không phải là mảng.

Nếu không có cách nào để thực hiện, vui lòng đề xuất cho tôi một số cách khác để thực hiện.

+5

'$ output [] = array_map (" nl2br ", $ row);'?! – Rizier123

+0

@ Rizier123 Điều này làm việc, Cảm ơn rất nhiều !! – IAmAndroid

+0

Bạn được chào đón. – Rizier123

Trả lời

1

Sử dụng array_map bạn có thể gọi hàm, do đó, với giá trị của mỗi $row bạn có thể nhận được các giá trị.

$sql = "SELECT * FROM myTable"; 
$result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) { 
     $output[]=array_map("nl2br",$row); 
    } 
echo json_encode($output); 
2

Bạn cần biết chính xác loại dòng văn bản mà json của bạn phải gửi. Sử dụng chức năng nl2br của php sẽ thay thế dòng mới bằng thẻ HTML có tên "br" được sử dụng để hiển thị các dấu ngắt dòng khi trình duyệt hiển thị HTML. Nếu ứng dụng mà bạn nạp với luồng json này là mong đợi văn bản thuần túy và không phải HTML, sử dụng nl2br không phải là giải pháp đúng. Trong trường hợp này, tôi đề nghị thay thế các dòng mới bằng một chuỗi thoát như "\ n" trong chuỗi của bạn trước khi gửi nó làm tham số cho hàm json_encode và để xử lý giải mã trong mã người tiêu dùng lưu lượng json của bạn đầy đủ về những gì bạn muốn làm với nó, html hoặc bất cứ thứ gì khác. Trong trường hợp này, this question có thể hữu ích.