2011-02-09 89 views
5

Tôi có một biến php có chứa dữ liệu từ một dòng IO (nói, một tập tin tôi vừa đọc). Chuỗi này chứa một số ký tự đặc biệt như \ n và \ t, v.v. Tôi cần để có thể in tất cả các nhân vật này để màn hình để tôi có thể kiểm tra chuỗi trực quan. Tôi đoán là có cách nào đó để trốn thoát họ, nhưng đối với cuộc sống của tôi, tôi không thể hiểu được làm thế nào.In các ký tự đặc biệt trong php

+0

Thuộc stackoverflow - cũng nhìn vào 'strreplace() 'chức năng – Mchl

+2

hỏi câu hỏi này tại stackoverflow.com –

Trả lời

2
addcslashes("test\n", "\0..\37\177..\377") 
0

Câu hỏi thú vị. Tôi đã không thể tìm thấy bất kỳ điều gì trong Google về việc thoát khỏi char mới.

Tôi đoán bạn có thể thử sử dụng nl2br, sẽ chuyển đổi dòng mới của bạn thành <br />, nhưng điều đó không thực sự hữu ích vì bạn sẽ không biết khi nào bạn có thẻ ngắt thực hoặc char mới.

Vì vậy, để vượt qua điều này, bạn nên giới thiệu hai tùy chọn. Nếu bạn chỉ muốn kiểm tra các chuỗi, sử dụng var_dump() hoặc var_export()

Các mã sau đây cho cung cấp cho các đầu ra 'text \\n':

$var = 'text \n'; 

var_export($var); 

Hoặc, nếu bạn muốn làm việc thêm với nó, bạn có thể sử dụng một đoạn mã như vậy, nhưng chúng ta hãy thật mà nói, đây là khá lộn xộn ...

$var = 'text \n'; 

$search = array('\n', '\r', '\r\n'); 
$replace = array('[n]', '[r]', '[r][n]'); 

echo str_replace($search, $replace, $var); 

sẽ này ra text [n]

0

tôi nghĩ rằng đây là một câu hỏi rất cũ nhưng không ai trong số các câu trả lời là rất hữu ích. Chúng tôi sử dụng chức năng này để kiểm tra chuỗi như thế này, vì vậy hy vọng nó có thể giúp người khác ra:

function convert_non_visual_ascii_chars_to_representation($string) { 
    $non_vis_chars = [ 
     0 => 'NUL', 
     1 => 'SOH', 
     2 => 'STX', 
     3 => 'ETX', 
     4 => 'EOT', 
     5 => 'ENQ', 
     6 => 'ACK', 
     7 => 'BEL', 
     8 => 'BS', 
     9 => 'TAB', 
     10 => 'LF', 
     11 => 'VT', 
     12 => 'FF', 
     13 => 'CR', 
     14 => 'SO', 
     15 => 'SI', 
     16 => 'DLE', 
     17 => 'DC1', 
     18 => 'DC2', 
     19 => 'DC3', 
     20 => 'DC4', 
     21 => 'NAK', 
     22 => 'SYN', 
     23 => 'ETB', 
     24 => 'CAN', 
     25 => 'EM', 
     26 => 'SUB', 
     27 => 'ESC', 
     28 => 'FS', 
     29 => 'GS', 
     30 => 'RS', 
     31 => 'US', 
    ]; 

    // Convert the string 
    $new_string = ''; 
    $length = strlen($string); 
    for ($i = 0; $i < $length; $i++) { 
     $char_code = ord($string[$i]); 
     if (isset($non_vis_chars[$char_code])) { 
      $new_string = $new_string . '[' . $non_vis_chars[$char_code] . '/' . $char_code . ']'; 
     } else { 
      $new_string = $new_string . $string[$i]; 
     } 
    } 

    return $new_string; 
} 
Các vấn đề liên quan