ホームページ > バックエンド開発 > PHPチュートリアル > javascript - php嵌入html script标签内的问题

javascript - php嵌入html script标签内的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-06 20:25:56
オリジナル
2522 人が閲覧しました

把php嵌入script标签里面,如果有空行的话就会解析错误。有什么解决方案?
\n document.getElementById('content').innerHTML = marked("");

回复内容:

把php嵌入script标签里面,如果有空行的话就会解析错误。有什么解决方案?
\n document.getElementById('content').innerHTML = marked("");

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

楼主的问题是 $data 变量中有很多行, 即有换行符, 然后如果直接输出的话, 会在JS的代码块中出现换行,
然后会产生JS错误.
类似于这样:

<code><script type="text/javascript">
    function marked(v){
        return v;
    }
    document.getElementById('content').innerHTML = marked("hello
world
asldkfjalsdjkf");
</script></code>
ログイン後にコピー

所以比较简单的做法是, 把 \r\n 手工进行转义.

完整测试代码:

<code class="html"><?php $data = "hello
world
asldkfjalsdjkf";

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


?>


    <meta charset="UTF-8">
    <title>Test</title>


<pre id="content">
ログイン後にコピー

执行效果:

javascript - php嵌入html script标签内的问题

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

<code class="html">


    <meta charset="UTF-8">
    <title>Test</title>


<pre id="content">
ログイン後にコピー

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

<code>echo "<script>document.getElementById('content').innerHTML = marked(".<?php echo $data ?>.")</script>";</code>
ログイン後にコピー

开启php短标签的情况

<code>echo "<script>document.getElementById('content').innerHTML = marked(".<? =$data ?>.")</script>";</code>
ログイン後にコピー

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート