PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (14): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец

> Найдено сообщений: 197
Haron Отправлено: 26 Апреля, 2011 - 04:58:15 • Тема: Народ, вы ощущаете себя бурлаками? • Форум: Прочее

Ответов: 4
Просмотров: 30
Официально я до сих пор числюсь ведущим дизайнером. Только за дизайн уже больше года не брался. Радость

Насчёт опыта - лучше молчать до часа X, если основная работа с этим не связана. А умения раскрывать последовательно и постепенно Улыбка.
Haron Отправлено: 26 Апреля, 2011 - 04:23:19 • Тема: Принять данные по UDP с помощью PHP • Форум: Работа с сетью

Ответов: 5
Просмотров: 4490
Ну во-первых - у Вас не динамический IP, а NAT - ибо модем GPRS.
Во вторых на роутере провайдера - должен быть проброшен порт, для приёма UDP-пакетов. UDP инкапсулирован в IP, и необходимость доступного порта никто не отменял.

Так что с GPRS-модемом - забейте и не парьтесь.
(Добавление)
Мда, и ещё, покурите про протокол UDP на википедии, ибо "использование UDP для обхода ограничений провайдера" - не более чем миф.
Haron Отправлено: 25 Апреля, 2011 - 14:42:21 • Тема: PHP жжот • Форум: Программирование на PHP

Ответов: 13
Просмотров: 745
Цитата:
Да, кстати. Сколько раз тестируете (чтобы подсчитать среднее время)?.. меньше, скажем, 10000 смысла нет.


1000 прогонов на модифицированном варианте скрипта. (файло с текстом читает с диска 1 раз, запуск через CLI).

Цитата:
Но если результат работы вас устраивает


Да результат-то устраивает, вполне, но речь не о том. Кстати позже и это замерю Улыбка
Haron Отправлено: 25 Апреля, 2011 - 11:24:48 • Тема: PHP жжот • Форум: Программирование на PHP

Ответов: 13
Просмотров: 745
morosit пишет:
А, что удивительного в том что:
Цитата:
Использование обёртки test_strlen_one() с проверкой на доступность расширения
повышает время выполнения скрипта


В том-то и дело, что ничего удивительного. Однако, подобные проверки - встречаются почти повсеместно.
(Добавление)
С оптимизацией EuGen'a - выполнило за 0.41 секунду
Haron Отправлено: 25 Апреля, 2011 - 10:15:59 • Тема: Конвертация Excel в XML • Форум: Программирование на PHP

Ответов: 4
Просмотров: 1344
Вот вам парсер xls:

http://code[dot]google[dot]com/p/php-excel-reader/

Переписать под xml - думаю проблемы не составит.
Haron Отправлено: 25 Апреля, 2011 - 09:54:57 • Тема: Конвертация Excel в XML • Форум: Программирование на PHP

Ответов: 4
Просмотров: 1344
Отлично. Цель - ясна. Сконвертировать XLS в XML.
Двигаемся дальше:

- Каков исходный формат xls-файла?
- Каков итоговый формат xml-файла?

Для начала приведите примеры содержимого исходного xls-файла, и ожидаемого xml-файла.
Haron Отправлено: 25 Апреля, 2011 - 09:44:05 • Тема: Как организовать транскрипцию слов для вставки в БД? • Форум: Хранение данных, их вывод и обработка

Ответов: 14
Просмотров: 7069
PHP:
скопировать код в буфер обмена
  1. function translit($str)
  2. {
  3.     $tr = array(
  4.         'А'=>'A','Б'=>'B','В'=>'V','Г'=>'G',
  5.         'Д'=>'D','Е'=>'E','Ж'=>'J','З'=>'Z','И'=>'I',
  6.         'Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M','Н'=>'N',
  7.         'О'=>'O','П'=>'P','Р'=>'R','С'=>'S','Т'=>'T',
  8.         'У'=>'U','Ф'=>'F','Х'=>'H','Ц'=>'TS','Ч'=>'CH',
  9.         'Ш'=>'SH','Щ'=>'SCH','Ъ'=>'','Ы'=>'YI','Ь'=>'',
  10.         'Э'=>'E','Ю'=>'YU','Я'=>'YA','а'=>'a','б'=>'b',
  11.         'в'=>'v','г'=>'g','д'=>'d','е'=>'e','ж'=>'j',
  12.         'з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l',
  13.         'м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r',
  14.         'с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h',
  15.         'ц'=>'ts','ч'=>'ch','ш'=>'sh','щ'=>'sch','ъ'=>'y',
  16.         'ы'=>'yi','ь'=>'','э'=>'e','ю'=>'yu','я'=>'ya', ' ' => '_'
  17.     );
  18.     return strtr($str,$tr);
  19. }


Вот и весь транслит.
Haron Отправлено: 25 Апреля, 2011 - 09:01:53 • Тема: PHP жжот • Форум: Программирование на PHP

Ответов: 13
Просмотров: 745
EuGen пишет:
Так дело быть может, как раз в ней? extension_loaded прекомпилирована, а вот обертка - нет.


Я пошутил про обёртку... А в записи - ошибся, код вручную писал, без копипаста, торопился.
Попозже пару тестов выложу...
(Добавление)
Итак - результаты теста:

Использовался следующий скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $start_1_time = microtime(true);
  4. $count = 0;
  5.  
  6. function test_strlen_one($text)
  7. {
  8.         if (extension_loaded('mbstring'))
  9.         {
  10.                 return mb_strlen($text);
  11.         }
  12. }
  13.  
  14. if (isset($_POST['submit']))
  15. {
  16.         $array = explode(' ', $_POST['text']);
  17.         foreach ($array as $key => $value)
  18.         {
  19.                 $count = $count + test_strlen_one($value);
  20.         }
  21. }
  22.  
  23. ?>
  24.  
  25. <form method="post">
  26.         <textarea name="text" cols="80" rows="40"><?=$count?></textarea>
  27.         <input type="submit" name="submit" value="start process" />
  28. </form>
  29.  
  30. <?PHP
  31. echo microtime(true)-$start_1_time . '<br />';
  32. ?>


- В качестве содержимого textarea - вставлялось 10 копий первой главы книги В. И. Ленина "Материализм и эмпириокритицизм" (http://www[dot]souz[dot]info/library/lenin/len14v02[dot]htm )

Тест первый:
- Использование обёртки test_strlen_one() с проверкой на доступность расширения mbstring
- Результат выполнения: 0.81 секунда

Тест второй
- Обёртка в цикле foreach была заменена на прямой вызов функции mb_strlen()
- Результат выполнения: 0.32 секунды

Конфигурация сервера:
Nginx 0.8.54 (Win32) FastCGI, PHP 5.2.14 with eAccelerator extension.
Haron Отправлено: 25 Апреля, 2011 - 08:42:57 • Тема: PHP жжот • Форум: Программирование на PHP

Ответов: 13
Просмотров: 745
EuGen пишет:
Haron пишет:
if (exstension_loaded('mbstring'))

Любопытно, а что это за функция такая? Я знаю только такую:
http://ru2.php.net/manual/en/function.extension-loaded.php
\

А это обёртка для неё :-D
Haron Отправлено: 25 Апреля, 2011 - 06:46:47 • Тема: Класс фильтрации GET POST COOKIE запросов • Форум: Пользовательские функции

Ответов: 11
Просмотров: 3979
OrmaJever пишет:
Я таки не понял смысл метода init ? Разве просто бъект создать нельзя?


Функция создаёт статический экземпляр объекта (ООП паттерн Singletone). Можно юзать по желанию, а можно и тупо создать объект.

Примеры:
PHP:
скопировать код в буфер обмена
  1. $requests = new GPC; // Просто создаём новый экземпляр класса.
  2. $requests = GPC::init() // Создаём "синглтон".


Подробнее: http://ru[dot]wikipedia[dot]org/wiki/Singleton
Haron Отправлено: 25 Апреля, 2011 - 06:44:18 • Тема: PHP жжот • Форум: Программирование на PHP

Ответов: 13
Просмотров: 745
Действительно. Ну им тогда повезло Радость Радость
Haron Отправлено: 25 Апреля, 2011 - 06:38:24 • Тема: Переменная $_GET[x] - На разных серверах работает по разному. • Форум: Программирование на PHP

Ответов: 6
Просмотров: 487
А может дома error_reporting отключен, и проблема таки в скриптах?

Проверьте скриптом:

test.php

<?php
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['supertest']))
  2. {
  3.       echo $_GET['supertest'];
  4. }

?>

Обратитесь к нему вот так: http:/my_home_servak/test.php?supertest=megapupertest
Должен напечатать megapupertest
Haron Отправлено: 25 Апреля, 2011 - 04:42:54 • Тема: PHP жжот • Форум: Программирование на PHP

Ответов: 13
Просмотров: 745
В общем друзья, такое дело:

Есть у меня один скриптец, разбивающий длинный текст на массив из отдельных слов. Так вот, в этой функции используется условие, при котором лесом идут все слова короче чем X символов. И там используется функция измерения длины слова. Но к чему это я... А к тому, что вот функция-обёртка strlen, для работы с русским текстом:

PHP:
скопировать код в буфер обмена
  1.  
  2. function utf8_strlen($str)
  3. {
  4.         if (exstension_loaded('mbstring'))
  5.         {
  6.                 return mb_strlen($str, 'utf-8');
  7.         }
  8.         else
  9.         {              
  10.                 return strlen(utf8_decode($str));
  11.         }
  12. }


Меня убило то, что когда используешь mb_strlen напрямую без обёрток - скрипт обрабатывает текст из 4000 слов за 0.2 секунды.

А если я подключаю вместо неё вышеозначеную - обёртку (мало-ли, вдруг на целевом хостинге нету расширения mbstring) - скрипт над тем-же текстом потеет... АЖ ЦЕЛЫХ ПОЛТОРЫ СЕКУНДЫ!!!

Вопрос?
Это чё за шляпа???
(Добавление)
Однако...

Заменив exstension_loaded() на function_exists() - скорость повысилась аж в два раза. Но всё равно, в три раза медленнее чем без обёртки.

Долгое это дело оказывается, независимость от подключеных расширений PHP.

И кстати... На этом форуме, да и на многих других - юзается phpbb, так вот, там есть такая весёлая библиотека функций - utf8_tools.php А там этих exstension_loaded() - OVER9000... Вот вам и идея по оптимизации данного форумного движка.

Комментарии как говорится, излишни...

*Пошёл оптимизировать подконтрольный форум... -)*
Haron Отправлено: 22 Апреля, 2011 - 19:14:29 • Тема: Подскажите приём, если таковой есть • Форум: Программирование на PHP

Ответов: 13
Просмотров: 639
То есть, на моём примере:



Вот так чтоли?
Haron Отправлено: 22 Апреля, 2011 - 19:03:57 • Тема: Подскажите приём, если таковой есть • Форум: Программирование на PHP

Ответов: 13
Просмотров: 639
А на примере можно?

Вот функция у которой может быть сколько угодно аргументов:

myfunk($a, $b, $c, $d, ...)

А вот массив, в котором может быть сколь угодно много элементов:

$array ('a' => 1, 'b' => 2, ...)

Интересует процесс, которым массив, передаётся в функцию в виде готового списка аргументов.

Страниц (14): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB