Мне нужно знать, есть ли переменный размер ограничения с PHP. Я беру строковое поле из базы данных SQL и использую echo
чтобы просмотреть его на веб-странице. Проблема, с которой я сталкиваюсь, заключается в том, что когда я просматриваю веб-страницу, я не вижу всего, что находится в поле базы данных. Существует ли ограничение на количество переменных PHP? Есть ли способ заставить PHP читать всю запись из базы данных и не останавливаться на достигнутом?
Объем данных, которые может удерживать переменная, ограничен только объемом памяти, доступной для PHP. Если вы встретите или превысите этот предел, выполнение страницы закончится, и вы, скорее всего, столкнетесь с ошибкой PHP. Данные, содержащиеся в переменной, не будут усекаться молча.
Обратите внимание, что большинство типов полей базы данных имеют явные ограничения на объем данных, которые могут быть сохранены в них. Возможно, вы захотите подтвердить, что данные действительно существуют в базе данных, как ожидалось, и не усекаются в момент ее вставки.
Вы также должны проверить вывод, просмотрев источник HTML. Если ожидаемые данные появляются при просмотре источника, но не отображаются, когда страница отображается в браузере, вам может потребоваться избежать данных для удаления любых объектов HTML, которые интерпретируется браузером в качестве разметки.
Размер переменной ограничен объемом памяти, доступным для PHP. Чтобы увеличить предел памяти PHP, вы можете изменить memory_limit
в файле php.ini
, если этот параметр доступен вам на вашем сервере. В противном случае вы можете использовать ini_set
в начале вашего скрипта.
ini_set('memory_limit','16M');
Это вряд ли будет проблемой памяти. PHP не стал бы колотить строку до размера, она просто умрет с ошибкой вне памяти.
Является ли строка вы выводить усеченным (конец отрублен), или части отсутствуют в середине? Помните, что при просмотре в браузере все, что похоже на HTML-тег, будет интерпретироваться как таковое. Если ваш текст содержит <
где-то, то после этого МОЖЕТ быть скрытым как часть неизвестного тега, пока a >
будет найден позже.
Это также не проблема базы данных, так как MySQL выдает ошибку, если размер данных превышает предел max_allowed_packet
.
Решение было ini_set('odbc.defaultlrl', 65536);
Размер переменной ограничен только объемом памяти, доступной для PHP. Чтобы увеличить предел памяти PHP, см. Этот пост:
Что касается вашей проблемы, должен быть и другой фактор, влияющий на ваш результат. Пожалуйста, разместите свой код для получения справки.
Вы могли бы сохранить целую страницу (html, css и javascript) в одной переменной и просто повторить ее. Строка должна быть прекрасной, помните, что в вашей базе данных существует ограничение на длину. varchar – 255, если u запускается в длину проблем с строкой в вашем db. Попробуйте более крупные типы полей.