将多行 PHP 字符串插入 Javascript 变量
Inserting a multiline PHP string into a Javascript variable
我的问题
我的问题是关于将 HTML 从 php 正确解析为 javascript 对象内部的变量(在本例中是 ace-editor 的值变量)
我的问题
我有一个 HTML 和 CSS 的文本区域,HTML 从数据库中检索并需要插入到 croppie 的字段中,我目前正在使用 PHP' s json_encode 将其放入变量内部的功能,但它似乎仍然从值中逃脱。
我的代码
<?php
$css = ($modify) ? trim($template->style()) : "";
$html = ($modify) ? trim( $template->html() ) : "";
$html = json_encode($html);
$css = json_encode($css);
?>
YUI().use(
'aui-ace-editor',
function(Y) {
var editorhtml = new Y.AceEditor({
boundingBox: '#editor-html',
height: '400',
mode: 'html',
value: '<?php echo substr( $html, 1, -1 ); ?>',
width: '100%',
showPrintMargin: false
}).render();
var editorcss = new Y.AceEditor({
boundingBox: '#editor-css',
height: '400',
mode: 'css',
value: '<?php echo substr( $css, 1, -1 ); ?>',
width: '100%',
showPrintMargin: false
}).render();
}
);
会发生什么
当我使用它并打开一个可以管理的特定模板时,我将无法看到文本区域(因为无法加载 ace 编辑器),我得到与第 666 行相关的随机错误,这是确切的行HTML 存储在。我确实正确地清理了 json_encode 中的输出.. 对吗?
在此屏幕截图中,您可以看到插入的 HTML/css。但是问题出现在HTML所在的第666行。
Click here if the screenshot isn't readable for you
所以我的问题是..
为什么它不能正确地将 HTML 解析为对象?我没有正确消毒还是遗漏了什么?
您的问题是因为您的 $html
字符串包含单引号,请尝试转义它们或使用双引号
您通过将 json_encode 创建的双引号更改为单引号来破坏 json_encode 的输出。
给script标签加值的时候最好直接调用json_encode:
value: <?php echo json_encode($html); ?>,
我的问题
我的问题是关于将 HTML 从 php 正确解析为 javascript 对象内部的变量(在本例中是 ace-editor 的值变量)
我的问题
我有一个 HTML 和 CSS 的文本区域,HTML 从数据库中检索并需要插入到 croppie 的字段中,我目前正在使用 PHP' s json_encode 将其放入变量内部的功能,但它似乎仍然从值中逃脱。
我的代码
<?php
$css = ($modify) ? trim($template->style()) : "";
$html = ($modify) ? trim( $template->html() ) : "";
$html = json_encode($html);
$css = json_encode($css);
?>
YUI().use(
'aui-ace-editor',
function(Y) {
var editorhtml = new Y.AceEditor({
boundingBox: '#editor-html',
height: '400',
mode: 'html',
value: '<?php echo substr( $html, 1, -1 ); ?>',
width: '100%',
showPrintMargin: false
}).render();
var editorcss = new Y.AceEditor({
boundingBox: '#editor-css',
height: '400',
mode: 'css',
value: '<?php echo substr( $css, 1, -1 ); ?>',
width: '100%',
showPrintMargin: false
}).render();
}
);
会发生什么
当我使用它并打开一个可以管理的特定模板时,我将无法看到文本区域(因为无法加载 ace 编辑器),我得到与第 666 行相关的随机错误,这是确切的行HTML 存储在。我确实正确地清理了 json_encode 中的输出.. 对吗?
在此屏幕截图中,您可以看到插入的 HTML/css。但是问题出现在HTML所在的第666行。
Click here if the screenshot isn't readable for you
所以我的问题是..
为什么它不能正确地将 HTML 解析为对象?我没有正确消毒还是遗漏了什么?
您的问题是因为您的 $html
字符串包含单引号,请尝试转义它们或使用双引号
您通过将 json_encode 创建的双引号更改为单引号来破坏 json_encode 的输出。
给script标签加值的时候最好直接调用json_encode:
value: <?php echo json_encode($html); ?>,