На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > работа со строкой
      мне надо обработать строку на наличее в ней, опред. символов, например
      <
      >
      /
      %
      и т.д, заменить их на то что мне нужно...

      Зарание спасибо
        PHP,JavaScript?

        ежели PHP, То предлагаю лобовой скрипт

        Цитата

        $Str='asdf<jsdfh>ajksgh/sdk%lergjk.';
        $i=0;
        while ($i<>strlen($Str)) {
        if ($Str[$i]=='<') {
        // ЗАМЕНА символа
        } else if ($Str[$i]=='>') {
        // ЗАМЕНА символа
        } else if ($Str[$i]=='/') {
        // ЗАМЕНА символа
        } else if ($Str[$i]=='%') {
        // ЗАМЕНА символа
        }
        $i++;
        }


        может, в лоб - зато работать должен. Не проверял!
          Цитата Суть Зла @ 10.03.04, 22:49
          PHP,JavaScript?

          ежели PHP, То предлагаю лобовой скрипт

          Цитата

          $Str='asdf<jsdfh>ajksgh/sdk%lergjk.';
          $i=0;
          while ($i<>strlen($Str)) {
          if ($Str[$i]=='<') {
          // ЗАМЕНА символа
          } else if ($Str[$i]=='>') {
          // ЗАМЕНА символа
          } else if ($Str[$i]=='/') {
          // ЗАМЕНА символа
          } else if ($Str[$i]=='%') {
          // ЗАМЕНА символа
          }
          $i++;
          }


          может, в лоб - зато работать должен. Не проверял!

          спасибо, проверим
            Ежели JavaScript, то, по-моему, так:

            Цитата

            ...

            function CharReplace(Str) {
            for (var i=0; i<=Str.length;i++) {
            //Здесь проверяешь на схожесть символов, как в примере на PHP
            i=i+1;
            }
            }

            ...



            Опят таки не проверял.. :)
            Сообщение отредактировано: Суть Зла -
              Для сего регулярные выражения существуют :)
              В PHP что-то типа этого:
              ExpandedWrap disabled
                $new_str = ereg_replace($pattern, $change_to, $old_str);

              Вот тут можно почитать: http://detail.phpclub.net/article/simple_regular
                tserega, А оправдано ли применение их(регэкспов) в этом случае? не будут ли тормозить по сравнению с обычными строковыми операциями?
                  Именно в этом (когда надо заменять всего лишь 1 символ) - вряд ли. А вот для поиска и замены чего-то послежнее - все плюсы налицо ;)
                    Цитата Суть Зла @ 10.03.04, 19:59
                    Ежели JavaScript, то, по-моему, так:


                    ...

                    function CharReplace(Str) {
                    for (var i=0; i<=Str.length;i++) {
                    //Здесь проверяешь на схожесть символов, как в примере на PHP
                    i=i+1;
                    }
                    }

                    ...



                    а мне кажется, что этот код будет обрабатывать только каждый второй символ ;)
                    или у Java Script есть какая-нибудь особенность в цикле FOR?
                      регулярные выражения тут не нужны
                      str_replace() пойдет и работать быстрее будет
                        Опечтался, опечатался, извините - говорю же, с ходу написал и даже не посмотрел ;)

                        А, вообще, то, что я предложил, немного (точнее, прямо) в "лоб", зато определенно работает. И сразу видны все плюсы и минусы этого...
                        Сообщение отредактировано: Суть Зла -
                          ExpandedWrap disabled
                             
                            $new_str = ereg_replace($pattern, $change_to, $old_str);

                          работает точно и быстро... :D спасибо
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0299 ]   [ 15 queries used ]   [ Generated: 27.04.24, 08:39 GMT ]