我需要知道PHP是否存在可变限制大小。我从SQL数据库中获取字符串字段,并使用echo
在网页上查看它。我遇到的问题是,当我查看网页时,我看不到数据库字段中的所有内容。 PHP变量可以有多少限制?有没有办法让PHP从数据库中读取整个条目而不是中途停止?
答案 0 :(得分:8)
变量可以容纳的数据量仅受PHP可用内存量的限制。如果达到或超过此限制,页面执行将结束,您可能会遇到PHP错误。变量中包含的数据不会被静默截断。
请注意,大多数数据库字段类型 do 对可以存储在其中的数据量有明确的限制。您可能希望确认数据确实存在于数据库中,并且在插入时不会被截断。
您还应该通过查看HTML源来检查输出。如果在查看源时显示预期数据,但在浏览器中呈现页面时不显示,则可能需要转义数据以删除浏览器正在解释为标记的任何HTML实体。
答案 1 :(得分:7)
变量大小受PHP可用内存量的限制。要增加PHP的内存限制,您可以修改memory_limit
文件中的php.ini
,如果您在服务器上可以使用该选项。否则,您可以在脚本的开头使用ini_set
。
ini_set('memory_limit','16M');
答案 2 :(得分:2)
这不太可能是内存问题。 PHP不会默默地将字符串缩小到大小,它只会因为内存不足而死掉。
您输出的字符串是否被截断(结束切断),或者中间缺少部分?请记住,在浏览器中查看时,任何看起来像HTML标记的内容都将被解释为。如果您的文本在某处包含<
,那么之后的任何内容都可能被隐藏为未知标记的一部分,直到稍后找到>
。
它也不太可能是数据库问题,因为如果数据大小超过max_allowed_packet
限制,MySQL会发出错误。
答案 3 :(得分:2)
解决方案是ini_set('odbc.defaultlrl', 65536);
答案 4 :(得分:0)
变量大小仅受PHP可用内存量的限制。要增加PHP的内存限制,请参阅以下文章:
关于您的问题,必须有一些其他因素影响您的输出。请发布您的代码以获取帮助。
答案 5 :(得分:0)
您可以将整个页面(html,css和javascript)保存在一个变量中,然后回显它。您的字符串应该很好记住,数据库中的长度是有限制的。如果您在db尝试较大字段类型中遇到字符串问题的长度,则varchar为255。