За последние 24 часа нас посетили 17363 программиста и 1681 робот. Сейчас ищут 834 программиста ...

разное время генерации одной и тойже страницы

Тема в разделе "PHP для новичков", создана пользователем Hard1911, 21 апр 2008.

  1. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    здравствуйте! почему время генерации одной и тойже страницы на одном и том-же сервере в разное время может составлять от нескольких сотых секунд до 6-7секунд? Почему так неровно? по чьей пречине это может происходить по пречине кодера или сервера? и какое время считается нормальным? спасибо
     
  2. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Без кода никто не скажет! Причин может быть ооочень много!
     
  3. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    давольно часто используется str_replace(); для работы на средних объемах текста
    один раз подключаюсь к базе данных..
    в htaccess настроен mod rewrite и страницы ошибки
    еще в некоторых деррикториях стоит запрет на просмотр всех файлов

    да вроде и все...
     
  4. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    а не без его описания!
     
  5. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    Вот код

    Код (Text):
    1.  
    2.  
    3. //подсчет времени создания страницы
    4. include("data/starttimegenirationpages.inc");
    5.  
    6. define(ID, $_GET['id']); //подключаемся к БД
    7. //работа с базой данныхберем всю необходимуб информацию------------------------------------------------------
    8. $db['name']="имя";
    9. $db['table']="имя";
    10. //соединение с БД
    11. $conn = mysql_connect ("хост", "имя","")
    12. or die ("Соединение не установлено!<br>");
    13. //выбор БД
    14. $selected=mysql_select_db($db['name'],$conn)
    15. or die ("База". $db['name']." не выбрана<br>!");
    16. //Выбервем в таблице ячейки
    17. $selectedresult=mysql_query("select * from ". $db['table']." where id=".ID.";");
    18. $pagesdata=mysql_fetch_array($selectedresult);
    19. //проверяет присутствие страницы в баще данных
    20. if ($pagesdata[1]=="") {
    21. include ("error/error404.htm"); exit;  
    22. }
    23. mysql_close($conn);
    24.  
    25.  
    26.  
    27. //определяем шаблон--------------------------------------------------
    28. $template_style="bw";
    29. switch (ID) {  
    30.     case 1:    
    31.     $ftmplte['body']="t/$template_style/index.htm";
    32.     $ftmplte['upmenu']="t/$template_style/upmenu.htm";
    33.     $ftmplte['downmenu']="t/$template_style/downmenu.htm";
    34.     $ftmplte['search']="t/$template_style/search.htm";
    35.     $ftmplte['copy']="t/$template_style/copy.htm";
    36.     $ftmplte['counter']="t/$template_style/counter.htm";
    37.     break;  
    38.        
    39.     case 6:    $ftmplte['body']="t/bw/photogallery.htm";    
    40.     $ftmplte['upmenu']="t/$template_style/upmenu.htm";
    41.     $ftmplte['downmenu']="t/$template_style/downmenu.htm";
    42.     $ftmplte['copy']="t/$template_style/copy.htm";
    43.     $ftmplte['counter']="t/$template_style/counter.htm";
    44.     break;     
    45.    
    46.     default:  
    47.     $ftmplte['body']="t/bw/deep.htm";
    48.     $ftmplte['upmenu']="t/$template_style/upmenu.htm";
    49.     $ftmplte['downmenu']="t/$template_style/downmenu.htm";
    50.     $ftmplte['search']="t/$template_style/search.htm";
    51.     $ftmplte['copy']="t/$template_style/copy.htm";
    52.     $ftmplte['counter']="t/$template_style/counter.htm";
    53.    
    54.              }
    55.  
    56. //функции для замены ссылок----------------------------------
    57. function main_pages ($stroper) {
    58. $actp="http://имя.ru/";
    59. //стр
    60. $L[1]="{Lindex}";//главная
    61. $L[2]="{Labitur}";//абитуриенту
    62. $L[3]="{Lactiv}"; //деятельноть
    63. $L[4]="{Lhistory}"; //история
    64. $L[5]="{Lstulife}"; //студ жизнь
    65. $L[6]="{Lphoto}"; //фотогалерея
    66. $L[7]="{Lcontact}"; //контакты
    67.  
    68. for ($i=1; $i<=7; $i++)
    69. $stroper=str_replace($L[$i],$actp.$i,$stroper);
    70. return $stroper;
    71. }
    72.  
    73.  
    74. function deep_pages ($stroper) {
    75. $actp="http://имя.ru/";
    76. $L[8]="{Lshtuko}";//Юрий Штуко
    77. $L[9]="{Ltushinok}";//Константин Тушинок
    78. $L[10]="{Lblagovest}"; //Благовест
    79. $L[11]="{Lvdohnovenie}"; //Вдохновение
    80. $L[12]="{Lsho}"; //школьное отделение
    81. $L[13]="{Lomo}"; //Отделение музыкального образования
    82. $L[15]="{Ldho}"; //Детское хоровое отделение
    83. $L[14]="{Lsnop}"; //сно поиск
    84. $L[16]="{Ltsni}"; //Центр научных исследований
    85. $L[17]="{Lmihno}"; //Михно
    86.  
    87. for ($i=8; $i<=17; $i++)
    88. $stroper=str_replace($L[$i],$actp.$i,$stroper);
    89. return $stroper; }
    90.  
    91. //Читаем шаблон страницы-------------------------------------------------------
    92. $fup = fopen($ftmplte['body'], "r");
    93. $Page=fread($fup, filesize($ftmplte['body']));
    94. fclose($fup);
    95.  
    96.  
    97. //Формеруем шаблон страницы--------------------------------------------------------
    98. //вставляем заголовок----
    99. $Page=str_replace("{Dtitle}", $pagesdata[1], $Page);
    100.  
    101. //Читаем шаблон верхнего меню вставляем верхнее меню---
    102. $fup = fopen($ftmplte['upmenu'], "r");
    103. $template['upmenu']=fread($fup, filesize($ftmplte['upmenu']));
    104. fclose($fup);
    105. $template['upmenu']=main_pages($template['upmenu']);//вставляем ссылки на страницы
    106.     $Page=str_replace("{Dup_menu}",$template['upmenu'],$Page);
    107.  
    108. //Читаем шаблон нижнего меню вставляем верхнее меню----
    109. $fup = fopen($ftmplte['downmenu'], "r");
    110. $template['downmenu']=fread($fup, filesize($ftmplte['downmenu']));
    111. fclose($fup);
    112. $template['downmenu']=main_pages($template['downmenu']);//вставляем ссылки на страницы
    113.     $Page=str_replace("{Ddown_menu}",$template['downmenu'],$Page);
    114.  
    115.  
    116. //Читаем шаблон копирайта вставляем копирайт--------
    117. $fup = fopen($ftmplte['copy'], "r");
    118. $template['copy']=fread($fup, filesize($ftmplte['copy']));
    119. fclose($fup);
    120.     $Page=str_replace("{Dcopy}",$template['copy'],$Page);
    121.  
    122. //Читаем шаблон счетчика вставляем счетчик--------
    123. $fup = fopen($ftmplte['counter'], "r");
    124. $template['counter']=fread($fup, filesize($ftmplte['counter']));
    125. fclose($fup);
    126.     $Page=str_replace("{DCounter}",$template['counter'],$Page);
    127.  
    128.  
    129. //Отдельно шаблон страницы в теле вставляем ссылки на вторые страницы----------------------
    130. $pagesdata[3]=deep_pages($pagesdata[3]);
    131.  
    132.  
    133.  
    134. //подключаем инклуды если предполагаются дополнительные замены и доделываем тело -------------------------------
    135. if($pagesdata[2]) //если инклуды существуют
    136. {
    137.     $bodyspecialparam=$pagesdata[3];
    138.     $includes=explode("|", $pagesdata[2]); //отдкляем их друг от дружки
    139.     $includescount=count($includes);
    140.     for ($includestep=0; $includestep<$includescount; $includestep++) //подключаем
    141.         include("data/".$includes[$includestep].".inc");  
    142. $Page=str_replace("{Dbody}", $bodyspecialparam, $Page);
    143. }else $Page=str_replace("{Dbody}", $pagesdata[3], $Page);
    144.  
    145.  
    146.  
    147. //и последним Читаем шаблон поиска вставляем поиск---------
    148. if (isset($ftmplte['search'])==true)
    149. {
    150.     $fup = fopen($ftmplte['search'], "r");
    151.     $template['search']=fread($fup, filesize($ftmplte['search']));
    152.     fclose($fup);
    153.     $Page=str_replace("{Dsearch}", $template['search'], $Page);
    154. }
    155.  
    156.  
    157.  
    158. //конец подсчета времени создания страницы
    159. include("data/endtimegenirationpages.inc");
    160. $Page=str_replace("{DTimeGen}", $DTimeGen, $Page);
    161. //Вывод страницы-----------------------------------------------------------
    162. echo "$Page";
     
  6. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    просто код большой.. и еще.. очень нуждаюсь в критике по скрипту....:)
     
  7. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Код :)
     
  8. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    include("data/starttimegenirationpages.inc");
    Код (Text):
    1.  
    2. //текущее время
    3. // считываем текущее время
    4. $start_time = microtime();
    5. // разделяем секунды и миллисекунды (становятся значениями начальных ключей массива-списка)
    6. $start_array = explode(" ",$start_time);
    7. // это и есть стартовое время
    8. $start_time = $start_array[1] + $start_array[0];
    include("data/endtimegenirationpages.inc");

    Код (Text):
    1.  
    2. //конец подсчета времени
    3. // делаем то же, что и в start.php, только используем другие переменные
    4.  
    5. $end_time = microtime();
    6.  
    7. $end_array = explode(" ",$end_time);
    8.  
    9. $end_time = $end_array[1] + $end_array[0];
    10.  
    11. // вычитаем из конечного времени начальное
    12.  
    13. $time = $end_time - $start_time;
    14. $time="$time";
    15. $DTimeGen="Страница сгенерирована за ".$time[0].$time[1].$time[2].$time[3].$time[4].$time[5]. " секунд";
     
  9. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Как вариант подключение к БД и/или чтение шаблона при загрузке
    Могу ошибаться, но мне, почему-то кажется именно так
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Испытайте скрипт на локалхосте. Может виноват Ваш хостинг
     
  11. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    на локале все ок
     
  12. Hard1911

    Hard1911 Активный пользователь

    С нами с:
    16 апр 2008
    Сообщения:
    44
    Симпатии:
    0
    Nemo, а в чем разница?
     
  13. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    причине
    директориях.

    Страница полностью одна и та же? или условия разные?
    если сохранить браузером, будет байт в байт (кроме времени)?