古怪的javascript php实现用php数据替换js中的数据
我正在研究其他人的遗留代码,他们有一个奇怪的实现,他们执行以下操作:古怪的javascript php实现用php数据替换js中的数据,javascript,php,Javascript,Php,我正在研究其他人的遗留代码,他们有一个奇怪的实现,他们执行以下操作: - load javascript file into php - perform a string replace for variables, such as replacing `$intro` with mysql data in the javascript 我的问题是$intro数据包含回车符,所以当我用mysql数据将字符串替换到javascript中时,它会导致javascript中断 以下是javascri
- load javascript file into php
- perform a string replace for variables, such as replacing `$intro` with mysql data in the javascript
我的问题是$intro数据包含回车符,所以当我用mysql数据将字符串替换到javascript中时,它会导致javascript中断
以下是javascript中的一行代码:
dialog.i_intro.value="$intro";
dialog.i_intro.value=dialog.i_intro.value.replace('--carriage--','\r\n');
下面是php中的一行代码:
$ln=str_replace("\$intro",$intro,$ln);
以下是数据:
dialog.i_intro.value = "Hello World
Hello World
Hello World";
我如何解决这个问题
更新
我需要javascript中的回车
我正在尝试以下方法:
- load javascript file into php
- perform a string replace for variables, such as replacing `$intro` with mysql data in the javascript
在php中:
$intro = str_replace("\r\n","--carriage--",$intro);
在Javascript中:
dialog.i_intro.value="$intro";
dialog.i_intro.value=dialog.i_intro.value.replace('--carriage--','\r\n');
但有些东西不适合这个
扩展更新
我已将所有换行符替换为html换行符。我发现代码正在使用eval解释js。这是我当前的intro变量的javascript输出
下一步该怎么办?Javascript至少目前在浏览器中部署了Javascript,在ES6中应该更容易,因为它不会非常直观地处理字符串中的行尾。你最好的办法是逃离马车返回,如
dialog.i_intro.value = "Hello World \
Hello World \
Hello World";
这不会触发错误,并将保留所需的换行符
要实现,请尝试以下内容,而不是当前的PHP字符串替换行:
$intro = str_replace("\n"," \\\n",$intro);
可以使用正则表达式将“\n”或“\n\r”字符替换为。或空字符串
dialog.i_intro.value = i_intro.value.replace(/\n\r?/g, '<br />');
用空替换\r\nstring@Tushar看看updateI添加了一个我测试过的示例,试试看它是否解决了您的问题。