2012-06-29 7 views
1

Хорошо,PHP включает без вывода?

Heres the thing. У меня есть (оплачиваемая) корзина для покупок, которую я сейчас в процессе jazzing с jquery и css и все остальное, чтобы заставить ее выглядеть и работать намного лучше, чем сейчас.

В любом случае. Чтобы использовать их базу данных и их функции и т. Д., Мне нужно включить их файл в начале веб-страницы. Я положил его в

<div style="display:none;"> 

Но, конечно, любой вывод все равно записывается в браузер. это не так много, но я бы предпочел иметь NO div и NO output, но я все еще хочу, чтобы он выполнял его вычисления. Его 5000-строчный PHP-файл и его слишком сложно пройти и отредактировать бит, которые я не хочу.

есть умный способ, что я могу включить файл, но указать, хочу ли я что-нибудь, написанное на страницу, когда оно будет включено?

Я знаю, что это немного помеха, надеюсь, я объяснил сам, если кто-нибудь может помочь, пожалуйста, дайте мне знать.

Спасибо.

+1

Выход буферизации? –

+0

Вы заплатили за пять тысяч строк PHP-скрипта. Не может ли автор сделать, чтобы он не выводил ничего, если не был запрошен? – CodeCaster

+0

Это приложение для покупок было куплено до того, как я присоединился к компании. Это избавляет меня от написания совершенно новой системы управления магазинами и базами данных, поэтому я рад ее использовать. Я действительно думал о них, но технически я не использую их сценарий правильно; Я думаю, они просто скажут «нет». – Chud37

ответ

9

Вы можете использовать output buffering поймать выход в переменную вместо того, чтобы отправить его в браузер:

ob_start(); 
require(...); 
$data = ob_get_clean(); 

Обратите внимание на использование require вместо include. Это потому, что я лично считаю, что сценарий должен сбой при попадании в ошибку включения, а не продолжать, как будто ничего не случилось.

+0

Я отдам его! – Chud37

+0

Спасибо, я раньше не использовал эту функцию. Php думал обо всем! – Chud37

0

Отъезд ob_start() и ob_end_clean(). Они позволяют вам записывать выходные данные и выгружать их, что должно устранить вашу проблему. Возможно, вам также захочется поговорить с вашим продавцом о создании не выводимой версии своего программного обеспечения, которое действительно должно быть сделано (я знаю, что проповедую хор).

Я до сих пор не знал о действительной причине использовать ob-end-clean. :-)

+0

Нет. Если честно, раньше я не сталкивался с этой функцией. Очень полезно. – Chud37