【问题标题】:Handle linebreak generated by Monaco Editor with PHP (& MySQL)使用 PHP (& MySQL) 处理 Monaco Editor 生成的换行符
【发布时间】:2022-01-05 03:20:16
【问题描述】:

在使用 PHP (Laravel) 处理时,我无法在 Monaco Editor 上处理换行符/换行符/回车符。之后我想将代码存储到 MySQL。 最终,存储的代码无论如何都会显示在 Monaco Editor 上。

最好的做法是什么?

这并不能解决问题。标签坏了

// comes from the textarea
$code = preg_replace('/\r\n|\r|\n/', '\n', request()->custom_script); 

$this->storeToMySQL($code);

刀片:

<label for="">Custom Script</label>
<div class="monaco-editor-container" style="height: 250px; border: 1px solid rgb(238, 238, 238);"></div>
<textarea name="custom_script" id="monaco_editor_textarea" style="display: none; white-space: pre-line"></textarea>
require(["vs/editor/editor.main"], function () {
    const monacoEditor = monaco.editor.create(document.querySelector('.monaco-editor-container'), {
        value: `{!! $monacoValue !!}`,
        language: 'html',
        base: 'vs',
        fontSize: "14px",
        minimap: { enabled: false },
    });

    $('#monaco_editor_textarea').val(monacoEditor.getModel().getValue())

    monacoEditor.onKeyDown(debounce(e => {
        $('#monaco_editor_textarea').val(monacoEditor.getModel().getValue())
    }, 500))
});

【问题讨论】:

    标签: javascript php mysql laravel monaco-editor


    【解决方案1】:

    我想我解决了这个问题。我一直遇到的问题是因为对象的value 属性无法渲染&lt;script&gt; 标签

    这是解决此问题的控制器更新代码:

    $code = preg_replace('/<\/script>/', '<\/script>', request()-> custom_script);
    
    $this->storeToMySQL($code);
    

    它现在能够存储和显示更复杂的代码,例如我尝试过的 HTML、JS、XML

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      相关资源
      最近更新 更多