Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скорость работы str_replace, Насущный вопрос обхода массива 
V
    Опции темы
KEM
Дата 17.3.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



В ходе очередных кодо-исправление возник такой вопрос!
Почему столь значительные разницы при выполнении казалось бы одинаковых операций?  smile 

Код

 for ($i=0; $i<500000;$i++){
    $bl_ar = str_replace(array("\r\n"," ",chr(9)),"",$bl_ar);
}
// Done: 6.978 sek


for ($i=0; $i<500000;$i++){
   while (list($ind, $val) = each($bl_ar)) $bl_ar[$ind] = str_replace(array("\r\n"," ",chr(9)),"",$val);
}
// Done: 1.187 sek


for ($i=0; $i<500000;$i++){
   foreach($bl_ar as $ind => $val){
     $bl_ar[$ind] =  str_replace(array("\r\n"," ",chr(9)),"",$val);
   }
}
// Done: 17.671 sek


Выходит вид while (list($ind, $val) = each($bl_ar)) на и более быстродействующий для обхода массива ?
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
Feldmarschall
Дата 17.3.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



В реальной жизни разница незаметна.

И при чем здесь "Скорость работы str_replace", хотелось бы знать.
PM   Вверх
merge
Дата 17.3.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 20.3.2007

Репутация: нет
Всего: 1



ты пробовал в разных php скриптах? всмысле не в одном? можнет он после первого вызова как-то оптимизировал массив?
PM MAIL   Вверх
awers
Дата 17.3.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



мало того что ворох орфографических ошибок, так и кроме str_replace функций не видешь?
PM MAIL WWW ICQ Skype   Вверх
KEM
Дата 17.3.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



Данные куски кода пробовал как вместе, так и раздельно, результат примерно одинаковый. 
Меня интересует почему вариант  
Код

 while (list($ind, $val) = each($bl_ar)) $bl_ar[$ind] = str_replace(array("\r\n"," ",chr(9)),"",$val);

является в  17 раз более быстродейстующим, чем
Код

 foreach($bl_ar as $ind => $val){
     $bl_ar[$ind] =  str_replace(array("\r\n"," ",chr(9)),"",$val);
   }

 

awers, вопрос нужно учиться читать внимательнее, а для флуда есть другие разделы smile 



Это сообщение отредактировал(а) KEM - 17.3.2008, 16:14
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
Feldmarschall
Дата 17.3.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(KEM @  17.3.2008,  16:11 Найти цитируемый пост)
Меня интересует почему вариант  

Ну если интересует - скачай исходный код, да посмотри - как реализован тот и другой вариант.
Вопрос ведь не имеет никакой практической ценности, а представляет чисто академический интерес.

В РНР есть миллион мест, где можно задаться точно таким же впросом. сравнивать скорость обработки строк в одинарных и в двойных кавычках, например.
Но тратить на это свое время врядли кто-то будет. Так что, если тебе так уж любопытно - смотри в исходниках.
PM   Вверх
SelenIT
Дата 17.3.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



KEM, а Вы уверены, что эти варианты на второй и последующих итерациях делают одно и то же? ;)

hint: найдите 1 отличие между конструкцией с while(each(...)), показавшей такой "феноменальный" результат, и подобной ей конструкцией в мануале, приведенной в качестве эквивалентной для foreach-а.

Это сообщение отредактировал(а) SelenIT - 17.3.2008, 16:57


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
KEM
Дата 17.3.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



Feldmarschall, ну почему же, с практической точки зрения давольно важно ели нужно максимально быстро обойти большие массивы данных.
SelenIT, конечно не одно и то же )
Для чистоты эксперимента,  если каждый элемент целочисленного массива увеличивать на 1, то вариант foreach при 5000 итераций явно отстаёт примерно в 22 раза!
Вот и весь академический интерес... smile 
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
SelenIT
Дата 17.3.2008, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



KEM, еще бы ему не отставать. Он ведь честно проходит весь массив все полмиллиона раз. А вайл с листом несколько халявит...  smile 


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
awers
Дата 17.3.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Цитата(KEM @  17.3.2008,  17:11 Найти цитируемый пост)
awers, вопрос нужно учиться читать внимательнее, а для флуда есть другие разделы  

Да, написано "Скорость работы str_replace", разве не так?

KEM, на phpclub.ru была статья по оптимизации. Там рассказано почему и что быстрее и в каких случаях стоит применять тот или иной вариант.
PM MAIL WWW ICQ Skype   Вверх
Canarat
Дата 17.3.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



KEM
Если не изменяет память, foreach копирует массив в памяти, именно с этим связаны его удобные свойства для программиста и некоторая медленность. Обрати внимание на синтаксис остальных циклов, и становится видно, что foreach необходимо совершать дополнительные операции с массивом(копирование, вычисление размеров) чтобы предоставить такой синтаксис.

PM MAIL   Вверх
SelenIT
Дата 17.3.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



KEM, подсказка "в лоб": каково быстродействие
Код

for ($i=0; $i<500000;$i++){
   reset($bl_ar); // внимательно читайте мануал! ;)
   while (list($ind, $val) = each($bl_ar)) $bl_ar[$ind] = str_replace(array("\r\n"," ",chr(9)),"",$val);
}

и чем это (как и foreach) отличается от изначального "казалось бы" самого быстрого варианта?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
mishaSL
Дата 17.3.2008, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



KEM, для полноты теста предлагаю свой вариант. Думаю он будет самый быстрый (если главное - это скорость):
Код

function testR(&$item, $key)
{
    $item = str_replace(array("\r\n"," ",chr(9)),"",$item);
}
array_walk($bl_ar, 'testR');



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Feldmarschall
Дата 17.3.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(KEM @  17.3.2008,  17:06 Найти цитируемый пост)
с практической точки зрения давольно важно ели нужно максимально быстро обойти большие массивы данных.

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

У нормального автомобилиста не бывает таких случаев. А если бывает, то он думает не как лошадь запрячь, а как бензина найти.
Или - что тоже бывает - для собственного удовольствия ездит на телеге. В случаях, когда он никуда не торопится.

И вот если твоему приложению надо максимально быстро обойти большие массивы, то думать надо не о том, как ловить микросекунды, а о том, чтобы этих массивов в приложении не было.
PM   Вверх
KEM
  Дата 18.3.2008, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



mishaSL, Ваш вариант оказался наиболее быстрым =)

SelenIT,   "reset($bl_ar); " да действительно косяк )

Feldmarschall, очень интересно было бы заслушать Ваш вариант на тему обработки списка e-mail из текстового файла, к примеру выборки по доменам?

awers, статью обязательно поищу и почитаю, т.к. вопрос очень интересует!

Подведу небольшой итог умозаключений в наглядной форме  smile 

Код

1 Done: 8.1106939315796
2 Done: 7.2879480838776
3 Done: 5.132677936554


Код

<?php

set_time_limit(90);

function tm_clc($st,$sp){
    $st = explode(" ", $st);
    $st = $st[1] + $st[0];
    $sp = explode(" ", $sp);
    $sp = $sp[1] + $sp[0];
    return $sp - $st;
}

function set_array(){
    for($i=0; $i<=2000000; $i++){
        $bl_ar[] = 1;
    }
    return $bl_ar;
}

################################################################################
$bl_ar = set_array();
$start = microtime();

 foreach($bl_ar as $ind => $val){
     $bl_ar[$ind] =  $val + 1;
   }

$stop = microtime();
echo "<br>1 Done: ".tm_clc($start,$stop)."<br>";
################################################################################
$bl_ar = set_array();
$start = microtime();

   while (list($ind, $val) = each($bl_ar)) $bl_ar[$ind] = $val + 1;

$stop = microtime();
echo "<br>2 Done: ".tm_clc($start,$stop)."<br>";
################################################################################
$bl_ar = set_array();
function testR(&$item, $key){ $item = $item + 1; }

$start = microtime();

   array_walk($bl_ar, 'testR');

$stop = microtime();
echo "<br>3 Done: ".tm_clc($start,$stop)."<br>";
################################################################################
?>


Господа...  smile 


Это сообщение отредактировал(а) KEM - 18.3.2008, 01:13
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
SelenIT
Дата 18.3.2008, 01:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(KEM @  18.3.2008,  01:13 Найти цитируемый пост)
списка e-mail из текстового файла

Так, может, Вам не str_replace, а обычный rtrim нужен? Он всяко побыстрее должен быть... И вообще, почему бы не использовать нормальную БД и извлекать любые выборки сразу в готовом виде?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
KEM
Дата 18.3.2008, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



это я к примеру сказал, мало ли случаев жёсткой привязки к конкретным условиям, тем более опять же работа "напрямую" с диском и памятью. быслрее работы через демоны БД.
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
SelenIT
Дата 18.3.2008, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(KEM @  18.3.2008,  01:29 Найти цитируемый пост)
 опять же работа "напрямую" с диском и памятью. быслрее работы через демоны БД.

Это бабка надвое сказала. Т.е. при сопоставимых условиях оно так, но, к примеру, выбор 100 значений из 100k по индексу явно будет побыстрее, чем перелопачивание всех этих 100k записей циклом. А если каждый раз грузить их все в память - то и подавно...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
skyboy
Дата 18.3.2008, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



KEM, если требуется "выборка по доменам", то один раз загнать в базу и поучать результаты с использованием индексов будет быстрее, чем "более быстрой работы с диском и памятью напрямую". потому что как только начинаются условия, сложнее, чем "просто выбрать", работа с массивами и памятью оказывается не такой уж и быстрой.

Добавлено через 1 минуту и 41 секунду
впрочем, давайте не оффтопить.
либо есть проблема и её надо решить(не исключая рефакторинга структуры и алгоритма), либо идем во "флейм" и там обсуждаем в духе "а что, если у меня нет СУБД" или "а у меня жесткая привязка к конкретным условиям" и т.д.
PM MAIL   Вверх
KEM
Дата 18.3.2008, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



SelenIT, ну это не бабка сказала, на этом так сказать гугл стоился
Условностей и возможностей действительно много, и для их обсуждения есть отдельные разделы, не будем флудить
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
SelenIT
Дата 18.3.2008, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(KEM @  18.3.2008,  02:09 Найти цитируемый пост)
на этом так сказать гугл стоился

Уж точно не на полном переборе многотысячных массивов. Тем более на ПХП smile.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Feldmarschall
Дата 18.3.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



KEM, и какова конечная цель этой обработки?
Впрочем, можешь и не трудиться придумывать очередную сказку. Задачи в вебе делятся на две категории - выполняемые при обращении пользователя к сайту, и  запускаемые на регулярной основе в фоновом режиме.
Для обоих вариантов твои проблемы не актуальны. В первом случае мы обязаны избавиться от обработки больших объемов информации, а во втором нам эти копеечные затраты и вовсе по барабану. Учитывая же весовые коэффициенты задач (к примеру, парсинг нескольких букв и собственно отправка мейла) мы окончательно приходим к полной бессмысленности таких "измерений".


PM   Вверх
Feldmarschall
Дата 18.3.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Цитата(KEM @  18.3.2008,  01:29 Найти цитируемый пост)
опять же работа "напрямую" с диском и памятью. быслрее работы через демоны БД. 

Мне кажется, это не оффтопик.
Это самая важная фраза во всем обсуждении.
Похоже, человек не понимает принципов использования базы данных, и, как я считаю, важнее всего ему эти принципы объяснить. Даже если придется для этого поменять раздел на какой-нибудь флейм.

KEM, дело в том, что получение от "демона БД" десятка записей будет всяко быстрее самостоятельного чтения сотни тысяч строк напрямую с диска и памяти. То есть, "надвое сказала" - это только в случае, если мы свои сто тыщ запрашиваем у БД, а потом нова парсим сами, в своей памяти. Но даже в этом случае ещё не факт, что "сами будем быстрее". Но суть-то не в этом. БД нам нужна не как замена текстового файла, который мы читаем целиком. А именно как демон, у которого мы запрашиваем только нужную информацию. Которая составляет мизерную долю от общего объема хранимых данных.
PM   Вверх
KEM
Дата 18.3.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



Feldmarschall, ну что же вы так привязались к этому примеру с текстовым файлом ? файл же может быть не только текстовый)  Да и принципы работы СУБД я понимаю замечательно, для каждой задачи есть свои оптимальные пути решения и не всегда это БД, есть масса задач для которых собственные файлы, типизированные или нет, подходят куда лучше.

Цитата

В первом случае мы обязаны избавиться от обработки больших объемов информации, а во втором нам эти копеечные затраты и вовсе по барабану. Учитывая же весовые коэффициенты задач (к примеру, парсинг нескольких букв и собственно отправка мейла) мы окончательно приходим к полной бессмысленности таких "измерений".

Вообще согласен, но при фоновой обработке, тем более в условиях одной физики и приличного объема данных, эти "копеечные затраты" могут стать боком. Если вы можете увеличить производительность хотя бы на 5% делайте это!

--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
Feldmarschall
Дата 18.3.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Привязался я к примеру потому, что он высосан из пальца.
Потому, что в реальности таких примеров не существует.
Да, есть масса задач для которых собственные файлы, типизированные или нет, подходят, не "куда лучше", разумеется, а примерно так же, как и БД.
Но это не тот случай, когда в файле десятки тысяч строк!

Давай, ты уже перестанешь оперировать абстрактными заявлениями на тему "вот бывают случаи", признаешь свою ошибку, и согласишься с утверждением, что постоянная обработка больших массивов информации на РНР - головотяпство и надо строить свое приложение так, чтобы такая обработка не требовалась.

Если же ты хочешь продолжать стоять на своем, то будь добр привести здесь реальный, практический случай. Только учти. Что беседуют с тобой здесь не мальчики, а профессионалы. Которые со всякими случаями сталкивались. И хорошо отличают реальность от фантазии. Поэтому или придумывай хорошенько, или сразу откажись от этой затеи. При этом задача должна быть реальной именно для тебя. Всякие гугли приводить в пример не надо - заранее предупреждаю - сядешь в лужу гораздо хуже.
PM   Вверх
KEM
Дата 18.3.2008, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



))))))))
очень милые изречения, напомню что настоящий профессионал никогда себя таковым не считает. т.к. его личный опыт ему этого не позволит. А ещё профессионалы не переходят на личности т.к. они "не мальчики". Ну это так к слову, я не считаю нужным вам что то доказывать или обьснять, я высказал свою точку зрения и останусь при ней, т.к. ваша не аргументирована, если человек считает технологию которую ему дали единственным средством решения задач, это просто значит что он не видит и не хочет видеть дальше своего носа.
Прошу тему считать исчерпаной  smile 
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
Feldmarschall
Дата 18.3.2008, 16:35 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Что и требовалось доказать
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0903 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.