情况很简单:
我发布了带有文本区域的纯HTML表单.然后,在PHP中,根据表单的内容注册一个JavaScript函数.
使用以下代码完成此操作:
$js = sprintf("window.parent.doSomething('%s');", $this->textarea->getValue());
就像魅力一样,直到我尝试处理换行符为止.我需要用char 13替换换行符(我相信),但是我无法找到有效的解决方案.我尝试了以下方法:
$textarea = str_replace("\n", chr(13), $this->textarea->getValue());
以及以下内容:
$js = sprintf("window.parent.doSomething('%s');", "'+String.fromCharCode(13)+'", $this->textarea->getValue());
有谁知道如何正确处理这些换行符的线索?
解决方法:
您几乎在那里,只是忘了实际替换换行符.
这应该可以解决问题:
$js = sprintf("window.parent.doSomething('%s');"
, preg_replace(
'#\r?\n#'
, '" + String.fromCharCode(13) + "'
, $this->textarea->getValue()
);