我正在尝试使用ajax请求将textarea
中的文本发送到php文件。要发送文本,我首先需要获取textarea的值:
var text = $("#textarea).val();
这很好。显示出textarea的值。然后,我执行一个ajax请求:
$.ajax({
url: 'set_articles.php',
type: 'POST',
data: {text: text},
success: function(data) {
console.log(data);
},
error: function(requestObject, error, errorThrown) {
console.log(error);
console.log(errorThrown);
}
});
在单独的php页面上,正在接收数据,但是问题是,当我尝试按段落拆分文本时,该段落中有一个\n
。例如,如果我发送按Enter键将这两段分开:
Random paragraph of text.
Random paragraph of text.
并使用以下php代码接收信息:
$text = nl2br($_POST['text']);
$paragraphsArray = preg_split('/\n/', $text);
print_r($paragraphsArray);
这是显示的文字:
Array
(
[0] => Random paragraph of text.<br />\nRandom paragraph of text.
)
这就是我要发生的事情:
Array
(
[0] => Random paragraph of text.
[1] => Random paragraph of text.
)
我已经尝试过修剪变量text
,就像这样:
var text = $("#textarea).val();
var newText = $.trim(text);
但它返回相同的内容:
Array
(
[0] => Random paragraph of text.<br />\nRandom paragraph of text.
)
如何修剪文本以使数组起作用?还有其他我应该发布的代码吗?让我知道。
答案 0 :(得分:0)
在这种情况下,我相信您可以使用PHP_EOL
(行尾)常量在一行中解决该问题:
$array_data = explode(PHP_EOL, $_POST['text']);
答案 1 :(得分:0)
您应该使用双引号作为“ \ n”,而不仅是引号
explode("\n",$_POST['text']); //this working
explode('\n',$_POST['text']); //this not working
答案 2 :(得分:0)
在PHP中偶尔使用单引号(')作为字符串定界符会导致PHP从字面上对待内容,即转义字符(例如\)不再转义,因此在您的用例中更有用在这里使用双引号(“)。
$array_data=explode("\n", $_POST['text']);