<script放入php,php嵌入html script标签内的问题

把php嵌入script标签里面,如果有空行的话就会解析错误。有什么解决方案?

\n document.getElementById(‘content’).innerHTML = marked(“<?php =$data ?>”);

好像楼上两位 @b9132 @kevins1022 没有理解楼主的问题所在.

楼主的问题是

$data

变量中有很多行, 即有换行符, 然后如果直接输出的话, 会在JS的代码块中出现换行,

然后会产生JS错误.

类似于这样:

<script type="text/javascript">

function marked(v){

return v;

}

document.getElementById('content').innerHTML = marked("hello

world

asldkfjalsdjkf");

</script>

所以比较简单的做法是, 把

\r

\n

手工进行转义.

完整测试代码:

<?php

$data = "hello

world

asldkfjalsdjkf";

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

?><!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Test</title>

</head>

<body>

<pre id="content"></pre>

<script type="text/javascript">

function marked(v){

return v;

}

document.getElementById('content').innerHTML = marked("<?php echo $data?>");

</script>

</body>

</html>

执行效果:

bVqCN5

最终浏览器得到的HTML代码为:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Test</title>

</head>

<body>

<pre id="content"></pre>

<script type="text/javascript">

function marked(v){

return v;

}

document.getElementById('content').innerHTML = marked("hello\r\nworld\r\nasldkfjalsdjkf");

</script>

</body>

</html>

没有开启php短标签的情况下

echo "<script>document.getElementById('content').innerHTML = marked(".<?php echo $data ?>.")</script>";

开启php短标签的情况

echo "<script>document.getElementById('content').innerHTML = marked(".<? =$data ?>.")</script>";

php短标签开启方法:

只需修改php的配置文件:php.ini ,将short_open_tag = off 改成 short_open_tag = on,然后保存,重启apache就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值