PHP.SU

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

Страниц (7): [1] 2 3 4 5 6 7 »

> Найдено сообщений: 103
MADONZY Отправлено: 19 Апреля, 2015 - 23:42:19 • Тема: cron параметры значение • Форум: Вопросы новичков

Ответов: 4
Просмотров: 286
php -f run.php arg1 arg2 arg3

MADONZY Отправлено: 09 Апреля, 2015 - 10:01:32 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
Браво
MADONZY Отправлено: 09 Апреля, 2015 - 00:26:14 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
LIME пишет:
И всетаки так и остается непонятным как реплэйсить utf

выбирай:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo str_replace("ри", "1", "Привет мир!"); // "П1вет мир!"
  3. echo preg_replace("/[а-я]/ui", '1', "Привет-2015 мир!"); // "111111-2015 111!"
  4.  


LIME пишет:
А для больших текстов интересно тоже

вот строка:
PHP:
скопировать код в буфер обмена
  1. $str = '';
  2. for($i = 0; $i < 30000; ++$i) {
  3.     $str .= chr(rand(33, 126));
  4. }

вот результаты:
str_replace - 17.406872034073
preg_replace - запустил, пошел перекурить, скрипт дальше выполняется...
Разница: ∞

P.S: Дал фору preg_replace-у, ограничил строку до 300 символов, результат 13.624022006989. Всё еще есть желание использовать для удаления чисел из строки preg_replace() ?
MADONZY Отправлено: 08 Апреля, 2015 - 23:24:20 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
LIME пишет:
запускай их в разных процессах
Было бы интересно посмотреть результаты


PHP 5.5
preg_replace - 3.9303209781647
str_replace - 2.359335899353
Разница ~49.95%
MADONZY Отправлено: 08 Апреля, 2015 - 22:05:15 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
LIME пишет:
То есть мой вардамп ложь?

твой var_dump всегда вернет истину, так как все кроме '1'-'9' приведется к 0.
LIME пишет:
А тесты по поводу быстрадействия это еще надо посмотреть как ты их делал

вот так:
PHP:
скопировать код в буфер обмена
  1. define('LOOP',1000000);
  2.  
  3. function f1() {
  4.   for($i=0; $i<LOOP; ++$i) {
  5.     str_replace('_', '-', 'parse-url-without-regular-expression');
  6.   }
  7. }
  8. function f2() {
  9.   for($i=0; $i<LOOP; ++$i) {
  10.     preg_replace('/_/', '-', 'parse-url-without-regular-expression');
  11.   }
  12. }
  13. $start = microtime(true);
  14. f1();
  15. $stop = microtime(true);
  16. $time1 = $stop - $start;
  17.  
  18. $start = microtime(true);
  19. f2();
  20. $stop = microtime(true);
  21. $time2 = $stop - $start;
  22.  
  23. echo $time1 . "\t";
  24. echo $time2 . "\n";
MADONZY Отправлено: 08 Апреля, 2015 - 20:44:22 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
LIME, с моих старых вопросов, которые ты помнишь, много времени прошло и я, как и все, много чему научился. Если я что-то пишу, значит я это не с воздуха взял, а с достоверных источников. К тому-же сам тестировал и действительно разница есть и почему бы не последовать этому микро-производительному решению дабы еще на 1 микросекунду ускорить программу. Я хотел помочь, но вижу что ты начинаешь переходить на личное, а я не хочу принимать в этом участие.
MADONZY Отправлено: 08 Апреля, 2015 - 17:43:30 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
LIME пишет:
MADONZY дурак ты

сам ты дурак Улыбка
LIME пишет:
Любой символ больше ноля

да что ты говоришь))) Может в С да, но мы говорим о PHP.

LIME пишет:
Ну тоесть любой не приводящийся к false

ни один символ при сравненни с числом никогда не приведется к false. Преобразование будет в int, в данном случае в 0 (символы '1'-'9' будут преобразованы в свои целочисленные соответствия).
LIME пишет:
кем?

Мною Улыбка Использование регулярных выражений для такой банальной задачи... не смешите! Функция str_replace() на 61.56% более производительная чем preg_replace() (даже без учета регулярок). Ещё лучше использовать strtr() (она на 9.76% быстрее чем str_replace()), но в данном случае она к сожелению не подойдёт.
MADONZY Отправлено: 08 Апреля, 2015 - 11:20:27 • Тема: не работает программа • Форум: Вопросы новичков

Ответов: 18
Просмотров: 749
Как сказал esterio лучшим и наиболее быстрым подходом будет:

Регулярка в данном случае совершенно не требуется и более того не рекомендуется.

OrmaJever, LIME, прокатит, но не так как вы это написал. Забыли о http://php.net/manual/en/ref.mbstring.php

LIME пишет:
хотя даже при разбиении по регулярке придется учитывать приведение типов к булевому

зачем? сейчас 21 век, preg_replace() использует PCRE, а значит доступен модификатор (regex pattern modifier) "u" который решит проблему.
MADONZY Отправлено: 20 Февраля, 2015 - 10:44:35 • Тема: Автомизация сервеных переменных • Форум: Администрирование Windows

Ответов: 0
Просмотров: 946
sorry
MADONZY Отправлено: 18 Февраля, 2015 - 00:39:56 • Тема: preg_replace • Форум: Вопросы новичков

Ответов: 5
Просмотров: 338
.
MADONZY Отправлено: 28 Января, 2015 - 13:06:06 • Тема: Принудительный вызов метода класса-потомка • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1413
armancho7777777 пишет:
MADONZY пишет:
PHP:
скопировать код в буфер обмена
  1. $a->test('some text'); // тут должен вызваться метод test() класса B: 'B some text'

Сами-то понимаете, чего хотите ?
Откуда классу A знать, что нужен метод именно этого дочернего класса, а не "С", или "D" ?
Создайте экземпляр объекта класса B и вызывайте.


В том то и дело что понимаю, но думал что народные умельцы что-то придумали Улыбка
MADONZY Отправлено: 28 Января, 2015 - 11:01:37 • Тема: Принудительный вызов метода класса-потомка • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1413
Ch_chov пишет:
У класса A может быть несколько наследников, поэтому никак.

MADONZY пишет:
Может есть какой-то шаблон проэктирования для таких случаев?

Ну так опишите свой случай.


2 варианта:
1) Есть класс A который наследуется от класа Х. В нем есть метод test (возможно статический). Где-то далеко-далеко в коде этот метод вызывается. Класс A это член стандартных классов какого-то фреймвока, котовый я не хочу изменять. Я же хочу создать свой дополнительный класс B который наследует класс А и в нем я надпишу (возможно статический) метод test. И я хочу что-бы в том далеком-далеком месте где вызывается метод test класса А, не изменяя этот вызов, вызывался метод test класса B.

2) Есть класс A который наследуется от класа Х. В нем есть метод test (возможно статический). Где-то далеко-далеко в коде этот метод вызывается. Класс A это член стандартных классов какого-то фреймвока, котовый я не хочу изменять. Я же хочу создать свой дополнительный класс B который наследует класс X и в нем я надпишу (возможно статический) метод test. И я хочу что-бы в том далеком-далеком месте где вызывается метод test класса А, не изменяя этот вызов, вызывался метод test класса B.
MADONZY Отправлено: 28 Января, 2015 - 10:18:57 • Тема: Принудительный вызов метода класса-потомка • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1413
Здравствуйте! Подскажи как, если это возможно, принудительно вызвать метод класса-потомка не изменяя базовый класс. На пример:

PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3.  
  4.     class A {
  5.        
  6.         function test($param) {
  7.             echo __CLASS__.' '.$param;
  8.         }
  9.        
  10.     }
  11.  
  12.     class B extends A {
  13.        
  14.         function test($param) {
  15.             echo __CLASS__.' '.$param;
  16.         }
  17.  
  18.     }
  19.  
  20.  
  21.  
  22.     $a = new A;
  23.     $a->test('some text'); // тут должен вызваться метод test() класса B: 'B some text'


или же со статическими методами:

PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3.  
  4.     class A {
  5.        
  6.         static function test($param) {
  7.             echo __CLASS__.' '.$param;
  8.         }
  9.        
  10.     }
  11.  
  12.     class B extends A {
  13.        
  14.         static function test($param) {
  15.             echo __CLASS__.' '.$param;
  16.         }
  17.  
  18.     }
  19.  
  20.     A::test('some text'); // тут должен вызваться статический метод test() класса B: 'B some text'


Может есть какой-то шаблон проэктирования для таких случаев?
Заранне, спасибо!
MADONZY Отправлено: 03 Ноября, 2014 - 18:59:23 • Тема: Алгоритм размещения слов в кроссворде • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 31
esterio пишет:
не дублируйте темы. вы не первый день на форуме
http://forum.php.su/topic.php?forum=71&topic=15556&v=l#1415032910


Да, но я не против что-бы мне помогли и не против что-бы за меня написали Улыбка
MADONZY Отправлено: 03 Ноября, 2014 - 18:40:38 • Тема: Алгоритм размещения слов в кроссворде • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 31
Здравствуйте, по лабораторной с программирования мне достался алгоритм кроссвордов...
На вход поступает массив [ ['question' => 'string1', 'answer' => 'string2'], ['question' => 'string2', 'answer' => 'string2'], ['question' => 'string3', 'answer' => 'string3'], ... ]
Нужно как-то сыскать между словами соответсвующие пересечения (и выбрать найболее подходящие) что-бы на выходе был соответствующий массив, но к ['question' => 'string1', 'answer' => 'string1'] ещё добавятся ['position' => 'int1', 'startX' => 'int1', 'startY' => 'int1']...
Как бы написать такой алгоритм?

Страниц (7): [1] 2 3 4 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB