"PHP" / Говнокод #5709 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
$str="T:/home//localhost///MyScripts/////";
$pos=strpos($str,"//");
while($pos!=false)
{
    $str=str_replace("//","/",$str);
    $pos=strpos($str,"//");
}

функция удаляет повторяющиеся слэши в строке

Запостил: Sulik78 Sulik78, (Updated )

Комментарии (53) RSS

  • а эта версия для более чем 2х слэшей
    $path = "T:/home/localhost/MyScripts/FileManager1.0"
    $i = 1;
    while($symbol != '/')
    {
    $symbol = $path{strlen($path) - $i};
    $last_dir = $symbol.$last_dir;
    $i++;
    }
    Ответить
  • зачем удалять слеши, тем более так тупо?

    благодарю тебя господь, что в непидарских языках есть объект File.

    зы: денвераст детектед
    Ответить
  • Ну если бы не одна строка, то вполне ничего так решение, особенно удобно, если более 2х слешей
    $pos=strpos($str,"//");
    А это лишнее, можно было бы в условие while поместить + не !=, а !== раз на то пошло
    Ответить
      • Бляя)) Ну нуб я, о его существовании я мало что знаю на самом деле... нет, знаю, но работа с ним у меня не ладится...((
        Ответить
        • плять!!
          абстракцией "урл" должен занимаца класс, представляющий урл
          или путь к файлу

          как бльядь можно ВРУЧНУЮ КОСУШКИ ТУДА СЮДА КРУТИТЬ в 2011м году то!!!
          Ответить
            • Да. Орудиями труда пользуются обезьяны только на природе и в зоопарках для разбивания орехов. Кодомакаки всё делают вручную.
              Ответить
              • у них еще есть такой аргумент: "зачем мне сложные классы? вручную быстрее и проще и скрипт быстрее работает"
                Ответить
                • > скрипт быстрее работает
                  А еще памяти меньше жрёт.

                  P.S. Так вот почему приложения на Джаве съедают весь моск всю память!?
                  Ответить
          • Это кто-то из комментаторов решил, что речь о пути к файлу. А вы решили, что оно не часть класса... Но из кода и сообщения автора этого не видно. Кроме того, PHP вполне себе можно использовать в качестве шелл скриптового языка, и в такой ситуации классы там сто лет в обед не нужны.
            Ответить
            • фейспалм

              >>Это кто-то из комментаторов решил, что речь о пути к файлу
              $str="T:/home//localhost///MyScripts/////"

              >>А вы решили, что оно не часть класса.
              $pos=strpos($str,"//");

              >> в качестве шелл скриптового языка
              http://en.wikipedia.org/wiki/Shell_script

              [quote]
              A shell script is a script written for the shell, or command line interpreter, of an operating system.
              [/quote]

              Вы это
              завязывайте с веществами.
              Ответить
              • Шаг 1: открыть терминал.
                Шаг 2:
                $ which php

                или
                $ whereis php

                Шаг 3:
                в зависимости от результатов и конкретной операционной системы, либо
                $ vi ~/test.php
                i
                #!/usr/bin/php
                <?php echo 'Hi!'; ?>
                :wq
                ~/test.php

                либо
                $ sudo apt-get install php #покликать на Tab и посмотреть чего дают, я сто лет назад устанавливал, может что поменялось

                и вернуться к шагу 2.

                "T:/home//localhost///MyScripts/////" - может быть именем файла (а точнее директории) только в Виндовс, где такая форма записи скорее не является типичной. Конечно, так можно записать и на -никс системах, но это будет скорее исключением из правила.
                🙂
                Ответить
                • Забыл:
                  $ chmod a+x ~/test.php

                  перед тем как запускать, ну или еще вариант, можно так:
                  $ php -r <?php echo 'hi!' ?>
                  Ответить
                • Вы видимо не вкурсе что шелл-скрипты пишутся на шелле
                  а пхп не является шеллом

                  так что все еще фейл
                  Ответить
                  • Это такой способ потроллить изображая из себя идиота? Ну как хотите... 🙂
                    Ответить
                    • для альтернативно-одоренных повторяю:

                      шелл-скрипты пишутся на шелле (коммандном интерпретаторе)
                      от того, что Вы запихали пхп в шебанг и написали на нем скрипт -- пхп не стал шеллом
                      таким образом шелл-скрипты на нем не пишутся

                      а изображать идиота рядом с Вами -- занятие неблагодарное
                      так прекрасно как у Вас, у меня все равно это не получится
                      Ответить
                      • Это ваше личное мнение, которое вы почему-то считаете общепринятым, в то время как shell значит "оболочка для общения с другой программой".
                        Кроме того, если вам принципально нужно слово "shell" в названии интерпретатора, то, есть еще и git://github.com/facebook/phpsh.git а так же Windows Script Host (как оказалось), которые могут выполнять PHP скрипт в интерактивном режиме.
                        Кроме того, как вы выражаетесь "писать на шелле" не возможно, шелл - это не язык, можно либо "для", либо "используя".
                        Ответить
                        • у Вас, видимо, с английским не очень.
                          Ничего, с PHPшниками это случается.

                          Еще раз даю цитату:
                          [quote]
                          A shell script is a script written for the shell, or command line interpreter, of an operating system.
                          [/quote]
                          Перевожу: шелл-скрипты это скрипты написанные на шеле или коммандном интерпретаторе операционной системы.

                          причем тут скриптхост-то?
                          на винде шелл один официальный: это cmd
                          на никсах это сиш, баш, кш, ш итд
                          пхп там нет

                          >>писать на шелле" не возможно, шелл - это не язык,
                          кроме того у Вас и с юниксами видимо не очень.
                          на шеле очень даже можно писать шелл-скрипты.

                          даю пример из педовикии:
                          #!/bin/bash
                          for jpg in "$@" ; do                         # use $jpg in place of each filename given, in turn
                              png="${jpg%.jpg}.png"                    # find the PNG version of the filename by replacing .jpg with .png
                              echo converting "$jpg" ...               # output status info to the user running the script
                              if convert "$jpg" jpg.to.png ; then      # use the convert program (common in Linux) to create the PNG in a temp file
                                  mv jpg.to.png "$png"                 # if it worked, rename the temporary PNG image to the correct name
                              else                                     # ...otherwise complain and exit from the script
                                  echo 'error: failed output saved in "jpg.to.png".' 1>&2
                                  exit 1
                              fi                                       # the end of the "if" test construct
                          done                                         # the end of the "for" loop
                          echo all conversions successful              # tell the user the good news
                          Ответить
                          • for the shell -> для шелла... и никак не "на шелле".
                            А вы вот ту страницу, на которую ссылаетесь, прокрутите до низа, там много чего еще интересного написано, и про php в том числе.
                            Ответить
                            • http://en.wikipedia.org/wiki/Bourne_shell

                              "Although it is used as an interactive command interpreter, it was always intended as a scripting language"

                              если Вы только что узнали что на шелле можно писать скрипты -- это не значит что до сегодняшнего дня их нельзя было на нем писать)

                              короче, я понял) любой интерпретируемый язык, запущенный под никсы это шелл скрипт, особенно если в нем не используются объекты)))))
                              дискуссия закрыта, удачного дня, привет пхпклубу
                              Ответить
                            • коммандной строки)

                              Багминот, Вы-то хотя бы не думаете что на sh нельзя писать скрипты, что php скрипт становица "шел скриптом" если запущен с консоли, и что в этом случае ООП в нем нафиг не нужно?:)
                              Ответить
                              • командных строк, курите ман Нейрон-ДОС 1.0 :р
                                именно это делает случайную программу, запущенную как шелл оболочкой

                                PHP нафиг не нужен, свой основной контракт выполняет с трудом, и строить что-то на его базе вообще идиотизм.
                                Ответить
    • Это философский вопрос. Сводится к тому, что зачем проверять пользовательский ввод, если можно сразу всегда всем вводить всё правильно? Или зачем делать обработку ошибок, если можно сразу писать правильно?
      Ответить
      • первая строчка нам ясно говорит, что это не пользовательский ввод, и исключения тут не генерятся
        Ответить
        • Мда-а-а... Первая строчка там исключительно для иллюстрации.
          Ответить
        • это я с форума взял одного там школяр вопрос задал и как сделать и как пример строку дал
          а другой ему такой функцией ответил
          потом еще добавил что надо использовать вторую версию так как она удалит более двух слэшей
          и строка как была так и скопировал.
          а вообще как я понял он пишет некий проект будет он нызваться
          FileManager 1.0 - мега дыра
          Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8