Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: что вместо include
 
 автор: Diablo_   (04.09.2007 в 22:44)   письмо автору
 
 

подскажите, пожалуйста! Чем можно заменить include?
Может проще сделать файл с функциями и вызывать их? Или может есть ещё альтернатива?
Просто мне друг программист, сказал что инклуде, это очень плохо, так как он жрёт много времени при генирации страницы! И я склонен ему верить!

   
 
 автор: bronenos   (04.09.2007 в 22:55)   письмо автору
 
   для: Diablo_   (04.09.2007 в 22:44)
 

include загружает содержимое, require переходит к содержимому, насколько мне известно и я пользуюсь require всегда

   
 
 автор: Ralph   (04.09.2007 в 23:23)   письмо автору
 
   для: bronenos   (04.09.2007 в 22:55)
 

А насколько мне известно,единственная разница между require и include-то,что при отсутствии вызываемого файла include продолжает работу дальше,а require вызывает fatal error и прекращает работу скрипта...А насчет времени работы-не проще самому протестить и узнать ?

   
 
 автор: bronenos   (05.09.2007 в 15:56)   письмо автору
 
   для: Ralph   (04.09.2007 в 23:23)
 

еще require включает содержимое файла еще до начала работы, а include - по ходу дела

   
 
 автор: Trianon   (05.09.2007 в 16:52)   письмо автору
 
   для: bronenos   (05.09.2007 в 15:56)
 

Читаем документацию http://www.php.net/manual/ru/function.include.php

The include() statement includes and evaluates the specified file.
The documentation below also applies to require().
The two constructs are identical in every way except how they handle failure.

   
 
 автор: Саня   (04.09.2007 в 22:58)   письмо автору
 
   для: Diablo_   (04.09.2007 в 22:44)
 

> Чем можно заменить include?
eval(file_get_contents());
Но это вообще убожество.

   
 
 автор: bronenos   (04.09.2007 в 23:33)   письмо автору
 
   для: Diablo_   (04.09.2007 в 22:44)
 

ну и верьте!
а если надо один и тот же кусок вставлять в 47 файлов и может быть изменять в будущем, вы тоже оставите это в стороне?
проснись, чувак! здесь больше плюсов чем минусов, а если тебе важно время - пиши на с++

   
 
 автор: ec_stasis   (05.09.2007 в 01:45)   письмо автору
 
   для: Diablo_   (04.09.2007 в 22:44)
 

А зачем, если не секрет?

   
 
 автор: mihdan   (05.09.2007 в 14:34)   письмо автору
 
   для: ec_stasis   (05.09.2007 в 01:45)
 

БРЕД, зачем заменять и переписывать то что уже имеется - одна из ошибок программиста по Стерлингу Хьюзу ("переписывание стандартных функций/конструкций")

   
 
 автор: Diablo_   (06.09.2007 в 23:49)   письмо автору
 
   для: mihdan   (05.09.2007 в 14:34)
 

Все дело в том, что я установил себе библиотеку "php_xdebug.dll", если слышали про такую! у так вот, она отображает время кождо функции на вызываемом файле! Она показывает include как самую долгую операцию!
Я попробывал её заменить на

<?
//-------------------------------------------------
$f=fopen("include/menu.php","r");
echo 
fread($ffilesize("include/menu.php"));
fclose($f);
//-------------------------------------------------
?>

до этого, было

<?
//-------------------------------------------------
include  "include/menu.php";
//-------------------------------------------------
?>

И он стал показывать что мол быстрее! Вот у меня и возник вопрос, так ли это!!!!

   
 
 автор: Diablo_   (07.09.2007 в 00:01)   письмо автору
 
   для: Diablo_   (06.09.2007 в 23:49)
 

Даже по тесту, вот это

<?
define
("START_TIME"microtime(true));
$lines 100;
for(
$i=0;$i<=$lines;$i++){
$f=fopen("file.txt","r");
echo 
fread($ffilesize("file.txt"));
fclose($f);
}
printf("Время выполнения: %.5f с"microtime(true)-START_TIME);
?>

быстрее чем вот это

<?
define
("START_TIME"microtime(true));
$lines 100;
for(
$i=0;$i<=$lines;$i++){
//include "file.txt";
}
printf("Время выполнения: %.5f с"microtime(true)-START_TIME);
?>

   
 
 автор: Sobachka   (07.09.2007 в 01:38)   письмо автору
 
   для: Diablo_   (07.09.2007 в 00:01)
 

не гонитесь за скоростью работы на виндовой машине... протестируйте тот же кусок кода на никсе, совсем другие результаты будут ;)
а если гонитесь за скоростью то не используйте с++ вообще =) статичиский контент *rofl*

   
 
 автор: Sobachka   (07.09.2007 в 01:38)   письмо автору
 
   для: Diablo_   (07.09.2007 в 00:01)
 

ДА ЗДЕЛАЙТЕ УЖЕ ПРОВЕРКУ НА ПОВТОРЯЕМОСТЬ!

   
 
 автор: Sobachka   (07.09.2007 в 01:39)   письмо автору
 
   для: Diablo_   (07.09.2007 в 00:01)
 

ДА ЗДЕЛАЙТЕ УЖЕ ПРОВЕРКУ НА ПОВТОРЯЕМОСТЬ!

   
 
 автор: Diablo_   (07.09.2007 в 11:19)   письмо автору
 
   для: Sobachka   (07.09.2007 в 01:39)
 

Я бы с радостью потестил на юникс машине.....но нету у меня её((((((((((((((((((
Пот и приходится это делать на виндовс

   
 
 автор: Trianon   (07.09.2007 в 11:31)   письмо автору
 
   для: Diablo_   (07.09.2007 в 11:19)
 

ну можно ж на каком нибудь хостинге (пусть даже бесплатном) попробовать
В "совсем другие результаты" на unix мне как-то не верится. Честно скажу.
Отличия, вероятно, будут, но никак не в разы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования