如何从PHP变量中删除不需要的换行符/换行符?

时间:2011-04-22 21:19:13

标签: php javascript newline line-breaks

当我通过javascript将php变量注册到html表单元素时,我收到错误。像If在我的代码中有php变量$edu_notes,我将此变量的值赋给html表单元素

<textarea name="1_1_50" id="1_1_50" ></textarea>

和我的Javascript代码是:

document.getElementById('1_1_50').value = "<?php echo $edu_notes; ?>";

$edu_notes的值来自linkedin个人资料:

"First Text Line

Second Text Line"

第一个文本行和第二个文本行之间有一个空行。 而javascript给出的错误是

unterminated string literal
"First Text line

由于空行,Javascript没有将字符串的全部值作为字符串。我尝试了一些像filter_var(),nl2br(),trim()这样的PHP函数,但没有解决这个问题。我还尝试通过(string) $edu_notes输入强制转换。

在我的源文件中我得到的内容请参见下面的截图:

enter image description here

我正在做这种类型的功能,因为所有表单元素都来自动态数据库。

4 个答案:

答案 0 :(得分:2)

尝试

  document.getElementById('1_1_50').value =   '<?php echo str_replace(array( "\r", "\n", "%0a", "%0d"), "' + \"\\r\\n \"  + '", $edu_notes); ?>'

将使用JS友好的返回来替换字符串中的任何换行符。

答案 1 :(得分:1)

这是因为它需要设置在同一条线上。在PHP中,用文字\n替换换行符,它应该可以正常工作。如果它是单行文本框,请用空格替换换行符。

<?php echo str_replace("\n", " ", $edu_notes); ?>

<?php echo str_replace("\n", "\\n", $edu_notes); ?>

答案 2 :(得分:1)

document.getElementById('1_1_50').value =
    '<?php echo str_replace("\n", "\\n", $edu_notes) ?>';

答案 3 :(得分:0)

尝试在javascript中使用多行字符串构造。

EG。

  var myStr = "line one \
line two";

要在您的PHP代码中重新创建此代码,请使用“\”和新行替换新行: -

"First Text Line

Second Text Line"

"First Text Line \

Second Text Line"

这可以使用preg_replace在php中完成: -

$edu_notes = preg_replace( '#\n#', '\\\n', $edu_notes );

希望这有帮助。