Как предотвратить повторение этого кода с помощью ob_get_contents (); - PullRequest
0 голосов
/ 05 января 2012

Вот что у меня есть:

    ob_start();
    for ($i=0; $i<count($_POST['checkbox_checker']);$i++) {
    echo "<br />".$_POST['checkbox_checker'][$i];
    $selection = ob_end_flush();
    }

Затем я использую $ selection для хранения в базе данных, так как не могу найти способ использовать сеансы для хранения флажков. Проблема в том, когда я использую $ SELECTION = ob_end_flush (); значения все еще эхо. Как я могу сделать так, чтобы значения, которые должны отображаться, сохранялись внутри $ selection и не показывались пользователю?

Ответы [ 5 ]

3 голосов
/ 05 января 2012

Кстати, реальным решением было бы не использовать echo. Вам не нужен этот обходной путь, если вы просто добавляете к строковой переменной:

for ($i=0; $i<count($_POST['checkbox_checker']);$i++) {
   $str .=  "<br />".$_POST['checkbox_checker'][$i];
}

(И вы также можете прочитать о foreach. Или даже implode() в этом случае.)

2 голосов
/ 05 января 2012

Использование ob_get_clean();

ob_start();
for ($i=0; $i<count($_POST['checkbox_checker']);$i++) {
   echo "<br />".$_POST['checkbox_checker'][$i];
}
$selection = ob_get_clean();
1 голос
/ 05 января 2012

ob_end_clean () - Очистить (стереть) выходной буфер и отключить выходную буферизацию

где как

ob_end_flush - очистить (отправить) выходной буфер и отключить выходную буферизацию

1 голос
/ 05 января 2012

Используйте взамен ob_get_flush(). ;)

0 голосов
/ 05 января 2012

ob_end_flush возвращает логическое значение, тогда как ob_get_flush возвращает строку.Последняя функция вам нужна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...