我该如何处理使用PHP提交一个非常大的字符串?

时间:2015-07-30 18:27:13

标签: php jquery html post large-data

我有一个有textarea输入的表单。这个文本区域将有一些自定义"标签"我想做的,类似于SO&#textarea中的*运算符,根据它的使用方式进行处理和解释为斜体或粗体。

最终目标是处理这长串文本,进行所需的任何格式修改,然后将其写入数据库表。但是,我不确定如何处理这个问题。

我的第一个想法是使用$ _POST,但我不确定在这个数组中存储非常大的字符串是一个好主意,因为我找不到任何关于它有多少数据的信息。存储在这个数组中。是否有一些将大量数据传输到另一个页面的最佳做法?我应该使用jQuery吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:3)

无论你是否使用jQuery执行此操作,最有可能使用

$_POST$_POST的默认限制已经足够高,可以处理大多数用户输入,缺少文件上传。如果您需要它大于8MB,则可以在php.ini文件中的Web服务器上更改它。我有一个类似的应用程序,在测试中我没有问题将> 64MB粘贴到我的textarea。

我还会考虑稍微改变操作顺序。我会做以下一种或另一种:

1)不是在插入数据库之前格式化文本,而是在返回浏览器的过程中对其进行格式化。这样,如果您更改输入的格式化方式,则可以将原始数据应用于其中。在显示数据时,服务器的工作量会多一些,但是您可能会更容易维护应用程序。

2)将格式化文本和原始文本存储在数据库中。这样可以提高速度,因为每次调用时都不必将其格式化为用户,并且还允许您以某种编码费用构建更改数据格式的方法。

编辑:在评论中声明 pal4life ,您希望避免执行任何用户输入。从本质上讲,如果您的方法是将输入保存到文件中,然后使用include()require()进行调用,则可能会遇到严重的安全漏洞。攻击者可以上传<?php var_dump($conn);或更糟糕的代码。我相信您可以放心readfile(),但浏览器仍然容易受到攻击者可能放置的任何潜在JavaScript的攻击。<​​/ p>

答案 1 :(得分:0)

使用$ _POST是一个非常好的开始方式,如果它变大,那么8MB就会改变php.ini。如果它变得更大,你可以开始切片你的字符串并通过jQuery将块发送到你的web服务器并在之后连接它们。

但是在第一次运行时我更喜欢标准方式并使用$ _POST。