0

wysiwyg と、PHP/HTML/Perl/etc のようなソース コードを挿入するセクションに取り組んでいます...

jQuery 経由でコードを強調表示するために、de PHP Geshi を使用します。

すべてがうまく機能し、コードをうまく取得できましたが、返されたコードで文字「+」が失われました。

問題は、送信時に新しいパラメータを追加するなど、「$.post」が「+」を解釈するという事実にあると思いますが、間違っているだけです。

POST や GET でさえ、変な文字がたくさんあるソース コードを取得するための適切なソリューションではありません... 新しいアイデアに興味があります ...

jQuery コード:

$('#valider_code').click(function() { 
    // On selectionne le contenue du textarea

    var code = $("#code").val();
    code = addslashes(code);
    // On cache le div
    $('#input_code').hide();

    $.post('/get_geshi.php', { "code" : code, "langage" : langage }, function(data) {

    data = data.replace(/\n|\r|\r\n/g, '<br>');
       // On insert le code
    var embed = '<div id="code_source">'+ data +'</div>';
        if($.browser.msie) {
            var selection = editor.contentWindow.document.selection;
            var range = selection.createRange();
            range.pasteHTML(embed);

        }
        else {
        execCommand("inserthtml", embed);
        }
        langage = "";
        code = $("#code").val('');


    }); // Fin get
    return false; // prevent default
  });

get_geshi.php

<?php
require_once('geshi.php');

$source = stripslashes(urldecode($_POST["code"]));

$language = $_POST["langage"];

$geshi =& new GeSHi($source, $language);
echo $geshi->parse_code();

?>
4

1 に答える 1

0

Y 次の行を入力してください (Perl コード) :

$line =~ /\s+(\S+)$/;

次の行を返します。

$line =~ /\s (\S )$/;

「+」ドロップ。

于 2013-02-17T11:29:41.480 に答える