使用PHP输出JavaScript时会出现神秘的换行符
Mystery line break appears when outputting JavaScript with PHP.
我正在使用PHP输出一些JavaScript作为WordPress短代码。我的php看起来像这样:
$output="<script type='text/javascript' >
jQuery(document).ready(function() {
jQuery('#photo{$photo_id}').on('click', function(){
Shadowbox.open({
content: '<div id=''popup{$photo_id}'' class=''popup''>{$content}</div>',
player: 'html',
height: 500,
width: 1200,
handleOversize: 'drag'
});
});
});
</script>";
return $output;
但是输出在Shadowbox的内容论证中的第一个引号之后有一个换行符。
像这样:
jQuery(document).ready(function() {
jQuery('#stylistphoto1').on('click', function(){
Shadowbox.open({
content: '
<div> id=''popup1'' class=''popup''> . . .
这给了我一个"未终止的字符串文字"错误,并使我的脚本失败。
发生了什么事?
注意事项:a.这是用UTF-8编码的,没有BOM。b.这在某一点上确实奏效了。c.如果我传递一个空字符串作为内容论证,效果很好,当然,这对我没有任何帮助。
首先,我不会在php变量中定义javascript功能,然后在某个地方回显,这是一种非常糟糕的做法。
这里的问题可能是,你的造型上有什么东西打破了这条线,因为它很长。你可以做什么来解决这个问题是做以下事情:
$output="<script type='text/javascript' >
jQuery(document).ready(function() {
jQuery('#photo{$photo_id}').on('click', function(){
Shadowbox.open({
content: '<div id=''popup{$photo_id}'' ' +
'class=''popup''>{$content}</div>',
player: 'html',
height: 500,
width: 1200,
handleOversize: 'drag'
});
});
});
</script>";
return $output;
WordPress的自动格式化功能之一,wpautop过滤器导致了这个问题。
我已经在用Chris Coyer的"原始"短代码了(http://css-tricks.com/snippets/wordpress/disable-automatic-formatting-using-a-shortcode/)因此,答案很简单,只需在将脚本输出回内容区域之前,将其包装在[原始][/原始]短代码中即可。
哈哈哈!
在我看来,content: '<div id=''popup{$photo_id}'' class=''popup''>{$content}</div>'
是个问题,因为参数content
的值被解释为'<div id=''
。它在下一个引号处停止。如果您的PHP版本不喜欢这个(看起来),您应该通过串联来分隔变量的这一部分。
$output="<script type='text/javascript' >
jQuery(document).ready(function() {
jQuery('#photo{$photo_id}').on('click', function(){
Shadowbox.open({";
$output .= "
content: '<div id='"popup{$photo_id}'" class='"popup'">{$content}</div>,'";
$output .= "
player: 'html',
height: 500,
width: 1200,
handleOversize: 'drag'
});
});
});
</script>";
return $output;
在可能的情况下,最好将'用于echo语句,并将"用于内部的所有内容,以避免处理引号转义,例如echo 'My friend says "hello", Tom.';
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 使用PHP输出JavaScript时会出现神秘的换行符
- 在JavaScript中的无操作(空)函数中不添加换行符的选项(IntelliJ Web/PHP风暴)
- PHP变量中javascript中的换行符
- PHP-忽略换行符获取url
- 使用PHP删除换行符
- php嵌入javascript,在HTML标记上输出换行符
- 删除PHP中的换行符和换行符
- JavaScript 文件换行符与 PHP 一起使用
- 使用 php 在文本区域中保存换行符
- 从 PHP 向 JavaScript 添加换行符
- 读取 Java 脚本 / PHP 类似文件 / 缺少换行符
- PHP 字符串包含打印 Javascript 时的换行符问题
- 如何在不丢失换行符和空格的情况下将js字符串变量传递给php
- PHP -从文本区删除换行符
- 如何从PHP字符串中删除所有换行符和转义字符?
- 把& lt; br>使用javascript(不是php)插入换行符
- 如何使用php或javascript将所有换行符和制表符替换为它们各自的x代码
- 使用 PHP 编写 JavaScript 警报时的换行符