На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
  
> Производительность , htmlspecialchars vs str_replace
    1. Не совсем понятно, при чём тут кавычки в запросах, если речь идёт не об этом.
    2. Попробуй вызови 500 раз функцию htmlspecialchars и то, что предложено выше (str_replace) (хотя я не совсем понял к чему это было написано). Ради того, чтобы заменить кавычки, хватит и str_replace. Сравнил, htmlspecialchars - ~0.026 сек, str_replace - 0.0011 сек. Проверял строку 'some data"new data"'. Как видишь, разница очевидна.

    Эта тема была разделена из темы "echo в <input ... value .... >"
      Цитата Крост @
      Не совсем понятно, при чём тут кавычки в запросах, если речь идёт не об этом.
      мдя. http://phpfaq.ru/slashes#input

      и нахрена htmlspecialchars вызывать 500 раз?
        Тест производительности.
        кстати, тогда уж не
        Цитата 40Mines @
        str_replace('"','"',$str);
        а
        ExpandedWrap disabled
          str_replace( array('"',"'"), array('&quot','&#180;') , $str )
          Цитата Крост @
          Попробуй вызови 500 раз функцию htmlspecialchars и то, что предложено выше
          Жжошь. Попробуй расскажи мне о практической задаче, где это нужно и позволяет сэкономить 50% ресурсов.

          Добавлено
          Ну или хотя бы 1%...
          http://rsdn.ru/article/philosophy/Optimization.xml
            раз уж вынесли в отдельную тему...

            ExpandedWrap disabled
              $temp = 'some data "new data"';
              $time_before = time() + microtime();
              for($i = 0; $i < 500; $i ++) {
                  $temp = htmlspecialchars($temp);
              }
              printf("%10.10f<br>", time() + microtime() - $time_before);
               
              $temp = 'some data "new data"';
              $time_before = time() + microtime();
              $arr  = array('"', "'");
              $arr1 = array('&quot','&#180;');
              for($i = 0; $i < 500; $i ++) {
                  $temp = str_replace($arr,$arr1,$temp);
              }
              printf("%10.10f<br>", time() + microtime() - $time_before);
            результат: 0.0374140739 0.0025038719 (примерно то, о чём говорил Крост)
            ExpandedWrap disabled
              $temp = 'some data "new data"';
              $time_before = time() + microtime();
              for($i = 0; $i < 500; $i ++) {
                  $str = htmlspecialchars($temp);
              }
              printf("%10.10f<br>", time() + microtime() - $time_before);
              $temp = 'some data "new data"';
              $time_before = time() + microtime();
              $arr  = array('"', "'");
              $arr1 = array('&quot','&#180;');
              for($i = 0; $i < 500; $i ++) {
                  $str = str_replace($arr,$arr1,$temp);
              }
              printf("%10.10f<br>", time() + microtime() - $time_before);
            результаты: 0.0011909008 0.0025050640

            правда, если учитывать кодировку ($str = htmlspecialchars($temp, ENT_COMPAT, 'cp1251'); ), то получаем 0.0061669350 0.0022580624
            справедливости ради, надо заметить, что замена str_replace('"','"',$str); на str_replace( array('"',"'"), array('&quot','&#180;') , $str ) замедляет раза в 2-3

            вопрос: какой из вариантов следует использовать в реальной практике?

            зы: ага, заняться было нечем =)
            ззы: php-4.4.4
            Сообщение отредактировано: negram -
              Вот блин... разделили в отдельную тему, даже не спросив)))
              Так... ладно, я смотрю в обеих случаях был неправ)))) В след. раз буду думать перед тем как по умничать :whistle:

              ExpandedWrap disabled
                Немного повисим здесь, а потом поедем в корзину или холивары...

              я думаю можно в козину))
              Сообщение отредактировано: Крост -
                Цитата negram @
                вопрос: какой из вариантов следует использовать в реальной практике?
                Забить на эти тесты в реальной практике. См. ссылку.
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0478 ]   [ 14 queries used ]   [ Generated: 20.05.24, 03:14 GMT ]