jQuery Ajax $.post проблема: символ "+" исчезает
Я работаю над wysiwyg и разделом для вставки исходного кода, такого как PHP/HTML/Perl/ и т.д...
Я использую де PHP Geshi для выделения кода через jQuery.
Все работает хорошо, я получаю свой код хорошо, но я потерял символ "+" в возвращенном коде.
Я думаю, что проблема заключается в том, что "$.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();
?>
1 ответ
Y введите эту строку (код Perl):
$line =~ /\s+(\S+)$/;
Это возвращает эту строку:
$line =~ /\s (\S )$/;
Падение "+".