2011-02-09 4 views
5

У меня есть переменная php, которая содержит данные из потока ввода-вывода (скажем, файл, который я только что прочитал). Эта строка содержит ряд специальных символов, таких как \ n и \ t и т. Д. Мне нужно иметь возможность печатать все эти символы на экране, чтобы я мог визуально визуализировать строку. Я предполагаю, что есть какой-то способ убежать от них, но для жизни меня я не могу понять, как это сделать.Печать специальных символов в php

+0

Принадлежит StackOverflow - также посмотреть на 'strreplace()' функция – Mchl

+2

Задайте этот вопрос в stackoverflow.com –

ответ

0

Ну интересный вопрос. Я не смог найти что-либо в Google об экранировании символа новой строки.

Я думаю, вы могли бы попробовать использовать nl2br, который преобразует ваши строки в <br />, но это не очень полезно, так как вы не будете знать, когда у вас есть фактический тег break или символ новой строки.

Итак, чтобы пройти мимо этого, вы рекомендую два варианта. Если вы хотите, чтобы проверить строку, используйте var_dump() или var_export()

Следующий код дает дает выход 'text \\n':

$var = 'text \n'; 

var_export($var); 

Или, если вы хотите продолжить работу с ним, вы можете использовать кусок кода, как это, но давайте будем честными, это довольно грязный ...

$var = 'text \n'; 

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

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

Это выведет text [n]

0

Я думаю, что это очень старый вопрос, но ни один из ответов не очень полезен. Мы используем эту функцию для изучения строк, как это, так что надеюсь, что это может помочь кому-то еще из:

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; 
} 
Смежные вопросы