ФорумПрограммированиеPHP для идиотов → Представление строк или как удалить конец строки?

Представление строк или как удалить конец строки?

  • [da_smag]

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 7 февраля 2010 г. 14:28

    Здравствуйте. Имеется строка вида:
    $str='test[]'


    Нужно удалить (именно удалить, а не заменить) из неё "[]". Как это сделать максимально быстро?
    Я подозревал, что можно это сделать примерно так:
    $srt[strlen($srt)-1]=$t; 
    $srt[strlen($srt)-2]=$t;

    где в качестве $t пробовал \0, \r, '', NULL, но всё равно не получалось.. Побовал применить к последним 2м элементам функцию unset, но выдавало ошибку..
    Пока остановился на варианте
    substr($str, 0, -2)
    , но как можно сделать быстрее? И как РНР представляет у себя в памяти строки?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 7 февраля 2010 г. 14:48, спустя 19 минут 38 секунд

    И как РНР представляет у себя в памяти строки?
    как массив байт …
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 7 февраля 2010 г. 14:55, спустя 7 минут 46 секунд

    [da_smag], а какая разница чем именно "удалить" эти знаки? В чем ты хочешь заметить разницу в скорости: в милисекундах или в тысячных милесекунд (последнее более вероятно, но в то же время глупо)?
    substr($str, 0, -2) - это не удаление строки. Это возврат строки БЕЗ какой-то части. То есть, вместо удаления идет "выделение" (можно сказать "копирование" части строки без некоторого кол-ва знаков согласно указанным аргументам). В таком случае считаю более корректным сделать именно замену (str_replace) ввиду того, что "удаляемый" кусок строки может находится не только в конце, но и в середине строки.
  • [da_smag]

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 7 февраля 2010 г. 14:58, спустя 2 минуты 14 секунд


    И как РНР представляет у себя в памяти строки?
    как массив байт …

    а поподробнее? =)
    можно ли "напрямую" изменить размерность этого массива байт и удалить некоторый байты? =)


    [da_smag], а какая разница чем именно "удалить" эти знаки? В чем ты хочешь заметить разницу в скорости: в милисекундах или в тысячных милесекунд (последнее более вероятно, но в то же время глупо)?
    substr($str, 0, -2) - это не удаление строки. Это возврат строки БЕЗ какой-то части. То есть, вместо удаления идет "выделение" (можно сказать "копирование" части строки без некоторого кол-ва знаков согласно указанным аргументам). В таком случае считаю более корректным сделать именно замену (str_replace) ввиду того, что "удаляемый" кусок строки может находится не только в конце, но и в середине строки.

    хочу, что бы чисто-принципиально скрипт работал с наибольшей скоростью =))
    структура такова, что удаляемый кусок может находиться только в конце строки =)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 7 февраля 2010 г. 15:06, спустя 8 минут 32 секунды

    [da_smag],

    можно ли "напрямую" изменить размерность этого массива байт и удалить некоторый байты? =)

    думаю что нет …
    Спустя 126 сек.
    Givi,
    [da_smag], а какая разница чем именно "удалить" эти знаки? В чем ты хочешь заметить разницу в скорости: в милисекундах или в тысячных милесекунд (последнее более вероятно, но в то же время глупо)?
    substr($str, 0, -2) - это не удаление строки. Это возврат строки БЕЗ какой-то части. То есть, вместо удаления идет "выделение" (можно сказать "копирование" части строки без некоторого кол-ва знаков согласно указанным аргументам). В таком случае считаю более корректным сделать именно замену (str_replace) ввиду того, что "удаляемый" кусок строки может находится не только в конце, но и в середине строки.
    в любой ситуации пхп будет копировать переменную, независимо от того что ты с ней будешь делать, это не си
    Спустя 19 сек.
    при условии, что ты ее будешь "изменять"
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 7 февраля 2010 г. 17:17, спустя 2 часа 10 минут 47 секунд

    phpdude, вот по сути это я и пытаюсь показать: в любом случае не будет простого удаления, будет происходить копирование части БЕЗ "удаляемого" куска. Но в то же время выигрыша в скорости достичь будет практически невозможно. Тем более, в данном случае, и, как указал ТС, "чисто принципиально", потому как конечная цель всей этой затеи нечто иное как говно на постном масле.

    [da_smag], чтобы скрипт работал с наибольшей скоростью, то достаточно заменить сервер на другой, максимально мощный. Тогда строка "Hello World!" будет отображаться ещё до того, как ты об этом подумаешь. А иначе остальное простая неизлечимая глупость.
  • ivanscm

    Сообщения: 1251 Репутация: N Группа: Джедаи

    Spritz 8 февраля 2010 г. 0:26, спустя 7 часов 9 минут 25 секунд

    [da_smag] в более удобном для себя виде можешь почитать здесь http://www.softtime.ru/group/id_group=1

    С возвращением, Пiха!
  • Cossack

    Сообщения: 17 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 12:59, спустя 922 дня 11 часов 32 минуты

    =))))))))))))))))))))))))))))))))))))))))))))))))))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!