Я пытаюсь безопасно открыть веб-страницу с помощью php, но он не работает [dубликат]

Хорошо, поскольку вы говорите, что уверены, что это важно, вы должны просто написать тестовую программу и измерить ее, чтобы найти разницу.

Сравнение может быть быстрее, если этот код выполняется по нескольким переменным, выделенным на разбросанных адресов в памяти. При сравнении вы будете только читать данные из памяти в кеш процессора, и если вы не измените значение переменной, когда кеш решит очистить строку, он увидит, что строка не была изменена, и нет необходимости записывать ее обратно к памяти. Это может ускорить выполнение.

9
задан codaddict 23 September 2010 в 05:51
поделиться

2 ответа

Вы можете использовать Буферизация вывода как

  ob_start ();  эхо "MESSI ранен !!";  заголовок ( "Location: somepage.php");  ob_end_flush ();   

Проблема в том, что мы не можем отправить заголовок после начала отправки вывода. Для этого мы буферизируем вывод. Функция ob_start включает буферизацию вывода. В то время как буферизация вывода активна, никакой вывод не отправляется из сценария (кроме заголовков), вместо этого вывод сохраняется во внутреннем буфере. Таким образом, выход echo будет буферизован. Затем мы отправляем заголовок без каких-либо проблем, поскольку мы еще не выплюнули какой-либо вывод. Наконец, мы вызываем ob_end_flush , чтобы очистить содержимое внутреннего буфера и остановить буферизацию вывода.

30
ответ дан codaddict 15 August 2018 в 14:42
поделиться
  • 1
    Совершенно верно – Tilman Köster 22 September 2010 в 05:48
  • 2
    На самом деле, если у вас есть буферизация вывода, ничего будет отправлено до того, как вы его сбросите. Даже не заголовки. (IIRC) – Jani Hartikainen 22 September 2010 в 13:44

Вы можете сделать это до тех пор, пока все вызовы заголовка появятся перед отправкой любого результата без заголовка (это включает в себя такие вещи, как перенос строки / пробелы). Итак,

  & lt;? Php header ("Location: somepage.php");  эхо "MESSI ранен !!";  ? & GT;   

должен сделать трюк

3
ответ дан gmarcotte 15 August 2018 в 14:42
поделиться
  • 1
    Dosen't вполне ответит на вопрос: напишите echo "" , а затем header () – codaddict 22 September 2010 в 05:52
  • 2
    В точку. Однако буферизация вывода должна решить проблему. – matsolof 22 September 2010 в 14:57
Другие вопросы по тегам:

Похожие вопросы: