Очистка страницы после вызова echo
Здравствуйте, уважаемые форумчане! Сразу прошу сильно не ругаться если некорректно задан вопрос.
У меня есть функция (myfunc()) которая выводит содержимое массива. Как очистить экран после вызова функции?
( Предполагается что функция clear будет вызываться по клику на кнопку и стирать с экрана то, что в данный момент выведено на экране.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
function myfunc(){ $movie = array( "title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112 ); echo ""
; foreach ( $movie as $key => $value ) { echo "$key: "; echo "$value "; } echo ""; } function clear(){ . } myfunc(); clear(); ?>
Как очистить страницу php
>так как при переходе на новую страницу старая таблица опять видна
Как это понимать? Запрашивается страница, на ней должна выводится таблица, выводим. Запрашивается другая страница, и на ней не должно быть таблицы, и если ее не выводить, то ее и не будет. С чего она у вас появляется?
автор: danga (27.11.2013 в 16:05) письмо автору
Для меня это тоже не понятно, почему эта первая таблица на второй странице page2 отображается, и никак ее не стереть. По идее, на второй странице новый boby и новый div должно все очистить со страницы page1. Но по всей видимости при переходе по include то что было на первой странице в тегах HTML не стерлось, так как URL все тот же. На старницу page1 я попадаю со странницы page0 тоже по includ, и на старнице page0 тоже есть короткая форма регистрация в таблице, но она заключена в php вот так:
. ‘ : на странице page1 эта форма не оборажается. автор: confirm (27.11.2013 в 16:24) письмо автору Не очищать страницу нужно от таблицы, а разбираться с логикой вашего скрипта, это причина. автор: danga (27.11.2013 в 18:08) письмо автору логику я же описала. автор: confirm (27.11.2013 в 18:50) письмо автору Ничего вы не описали. Динамическое содержимое формируется в массе своей по условию. Не важно что это — таблицы, формы, подключаемые файлы. Если ваши страницы, это запрос к одному файлу, например к индексному, и он по ID запрашиваемой страницы отдает нужный контент, то у вас либо в условиях (логике) ошибка, либо в структуре кода, либо в переменных. Проверяйте свой код, в нем ошибка. ob_end_cleanЭта функция удаляет содержимое самого верхнего буфера вывода и отключает эту буферизацию. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_clean() , так как все содержимое буфера удаляется при вызове ob_end_clean() . Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_CLEANABLE и PHP_OUTPUT_HANDLER_REMOVABLE. Иначе не сработает ob_end_clean() . Список параметровУ этой функции нет параметров. Возвращаемые значенияВозвращает true в случае успешного выполнения или false в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является её вызов без активного буфера или если буфер не может быть удалён (специальный тип буфера). ОшибкиЕсли функция завершается ошибкой, генерируется E_NOTICE . ПримерыСледующий пример показывает простой способ избавиться от всех выходных буферов: Пример #1 Пример использования функции ob_end_clean() ob_start (); Смотрите также
User Contributed Notes 12 notes19 years ago Note that if you started called ob_start with a callback, that callback will still be called even if you discard the OB with ob_end_clean. Because there is no way of removing the callback from the OB once you’ve set it, the only way to stop the callback function from having any effect is to do something like: $ignore_callback = false ; 12 years ago Take note that if you change zlib output compression setting in between ob_start and ob_end_clean or ob_end_flush, you will get an error: ob_end_flush() failed to delete buffer zlib output compression ini_set ( ‘zlib.output_compression’ , ‘1’ ); ?> ob_end_clean(); in this example will throw the error. 3 years ago If there is no confidence about output buffering (enabled or not), while ( ob_get_level () !== 0 ) ob_end_clean (); while ( ob_get_length () !== false ) ob_end_clean (); 20 years ago You might want to prevent your script from executing if the client already has the latest version. $mtime=filemtime($_SERVER[«SCRIPT_FILENAME»])-date(«Z»); if(isset($headers[«If-Modified-Since»])) if ($headers[«If-Modified-Since»] == $gmt_mtime) header(«HTTP/1.1 304 Not Modified»); $size=ob_get_length(); Instead of checking the If-Modified-Since-Header against the date of the last modification of the script, you can of course query a database or take any other date that is somehow related to the modification of the result of your script. You can for instance use this technique to generate images dynamically. If the user indicates he already has a version of the image by the If-Modified-Since-Header, there’s no need to generate it and let the server finally discard it because the server only then interpretes the If-Modified-Since-Header. 16 years ago Keep in mind that mrfritz379’s example (#49800) is just an example. You can achieve that example’s result in a more efficient manner without using output buffering functions: echo « Search running. Please be patient. . .»; FileList: \n»; while (($fd = readdir($dh)) != false) echo » .»; \n»; In addition to John Smith’s comment (#42939), ob_gzhandler() may still set the HTTP header «Content-Encoding» to «gzip» or «deflate» even if you call ob_end_clean(). This will cause a problem in the following situation: 1. Call ob_gzhandler(). In the above case, the browser may receive the «Content-Encoding: gzip» HTTP header and attempts to decompress the uncompressed «New content». The browser will fail. In the following situation, this behaviour will go unnoticed: 1. Call ob_gzhandler(). This is because the second ob_gzhandler() will mask the absence of the first ob_gzhandler(). A solution would be to write a wrapper, like John Smith did, for the ob_gzhandler(). Очистка страницы phpДопустим страница news\ содержит блоки с картинкой и описанием новостной статьи и по клику открывается news\post1 . Для этого помимо самой страницы news нужно ещё создать одну страницу, которая по id будет выводить саму статью, или же я могу как-то очистить все пункты на странице news путем каких-то условий в том же самом файле news.php ? Лучший ответ Если сайт планируете обновлять, то создавать отдельные файлы под каждую новость неудобно. Обычно делают так: все запросы к сайту передаются в один файл, например index.php (через RewriteRule в файле .htaccess). Далее в index.php URL разбирается на части (parse_url() и explode()), если ввели просто /news генерируется HTML-страница со списком новостей (информация берется из базы данных). Если адрес был /news/post1 — извлекается id новости, делается запрос к базе на выбор новости с и также генерируется страница |