2011-01-03 5 views
2

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

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

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

ответ

4

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

Как это:

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

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

+0

Hey guyz thansks все вы ... специально тайский и Cary Chow – Ayush

1

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

1

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

str_replace("\r\n", "", $text); // Replace CR+LF 
str_replace("\r", "", $text); // Replace CR 
str_replace("\n", "", $text); // Replace LF 
+1

ЕСЛИ вы делаете CR и LF заменяете, тогда замена CR + LF бесполезна. – daniels

0

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

2

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

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

или

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

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

0

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

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

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

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

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

Смежные вопросы