【问题标题】:How to trim unwanted newlines/linebreaks from PHP variable?如何从 PHP 变量中修剪不需要的换行符/换行符?
【发布时间】:2011-04-22 21:19:12
【问题描述】:

当我通过 javascript 将 php 变量注册到 html 表单元素时出现错误。就像如果在我的代码中有 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 无法将完整值作为字符串获取。我尝试了一些 php 函数,例如 filter_var(),nl2br(),trim(),但没有解决这个问题。我还尝试通过(string) $edu_notes 进行类型转换。

在我的源文件中,我得到了什么,请看下面的截图:

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

【问题讨论】:

    标签: php javascript newline line-breaks


    【解决方案1】:

    试试

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

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

    【讨论】:

    • @karel 请告诉我为什么我们在这种情况下使用数组..??
    • @GitsD 这样任何类型的返回都会被转换。
    • @GitsD - 可以提供一组要搜索和替换的值:php.net/manual/en/function.str-replace.php,因此您不必多次调用。
    • 哎呀..我有“
    • @kerel 我对您的代码进行了一些更改,并且工作正常...也谢谢您...干杯
    【解决方案2】:
    document.getElementById('1_1_50').value =
        '<?php echo str_replace("\n", "\\n", $edu_notes) ?>';
    

    【讨论】:

    • @GitsD - 如果您认为这是您的答案,请单击该答案旁边投票数下方的勾勒勾号。
    • 我试图从一开始就点击这个刻度线..但它等待 7 分钟..这就是为什么延迟到 tick.sory...
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

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

      例如。

        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 );
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-27
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-23
        • 1970-01-01
        相关资源
        最近更新 更多