Заменить новую строку |PHP - PullRequest
       29

Заменить новую строку |PHP

2 голосов
/ 03 января 2011

Я разрабатываю скрипт, который получает весь контент с веб-страницы, используя file_get_contents(), затем удаляет все HTML, JavaScript и CSS форматирование и сохраняет его в переменной.

Затем я назначаю эту переменную PHP переменной JavaScript. Теперь моя проблема в том, что текст (который я назначил JavaScript var) содержит много новых строк, что дает мне ошибку JavaScript при запуске моей программы.

Простой str_replace("\n", "", $text); не работал для меня. Я также пытался ltrim, trim, rtrim.

Ответы [ 6 ]

4 голосов
/ 03 января 2011

Вы присваиваете строку переменной JavaScript, вы можете использовать json_encode.

Как это:

<script type="text/javascript">
var g_text = <?php echo json_encode($text); ?>;
</script>

Примечание: Таким же образом вы можете передавать массивы и числа в JavaScript.

2 голосов
/ 03 января 2011

Вам нужен только один звонок:

$string = str_replace(array("\r", "\n"), '', $string);

или

$string = strtr($string, "\r\n", '');

Нет необходимости в нескольких вызовах или в наличии нескольких комбинаций ... Тем не менее, он по-прежнему заботится о 3 возможных последовательностях окончания строки (Windows \r\n, Linux \n, Mac \r) ...

1 голос
/ 03 января 2011

Попробуйте этот код.Он заменяет все возможные символы новой строки во всех ОС.

str_replace("\r\n", "", $text); // Replace CR+LF
str_replace("\r", "", $text);   // Replace CR
str_replace("\n", "", $text);   // Replace LF
1 голос
/ 03 января 2011

Вы пробовали str_replace("\r\n", "", $text);?

0 голосов
/ 26 мая 2011

К вашему сведению: пожалуйста, не забывайте всегда использовать двойные кавычки при поиске / замене символов новой строки.Если вы используете одинарные кавычки, такие как:

print str_replace(array('\n', '\r\n', '\r'), '', $strBorked);

Это никогда не будет работать!Вы должны использовать:

print str_replace(array("\n", "\r\n", "\r"), '', $strBorked);

Это потому, что PHP не интерпретирует внутри одинарных кавычек, а \ n символьный php переводится в буквальный перевод строки только внутри двойных кавычек.Это, конечно, относится ко всем управляющим символам.

0 голосов
/ 03 января 2011

Я полагаю, что сохраненная строка содержит HTML, верно?Если вы хотите, вы можете использовать nl2br для преобразования \ n в тег BR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...