ПХП: Исеците свој одломак на реч користећи стррпос

хтмл код

Ако радите са ПХП-ом и желите да прикажете само одломак из свог изворног текста и да га исечете на више знакова, ваш одломак може изгледати ружно ако се ради у средини низа. Морао сам да напишем функцију да то учиним у АСП-у и у АСП.НЕТ-у која се у основи окретала од последњег знака назад да би пронашла последњи простор и тамо га одсекла. Некако гадно и мало претјерано. То заправо можете видети на делу код моје куће страна где пружам само првих 500 знакова.

Био сам потпуно спреман да развијем исту функцију са ПХП данас, али установио сам (као и обично) да ПХП већ има функцију која то већ ради, стррпос.

Стари код ће узети подниз ($ садржај) од првог знака до максималног броја знакова који желите ($ макцхарс):

$ цонтент = субстр ($ цонтент, 0, $ макцхарс); ецхо $ цонтент;

Нови код:

$ цонтент = субстр ($ цонтент, 0, $ макцхарс); $ пос = стррпос ($ садржај, ""); иф ($ пос> 0) {$ цонтент = субстр ($ цонтент, 0, $ пос); } ецхо $ цонтент;

Дакле, нови код прво пресеца садржај на ограничење броја знакова које тражите. Међутим, следећи корак је тражење последњег размака („“) у садржају. $ пос ће престати да буде та позиција. Сада једноставно осигуравам да у садржају заиста постоји простор питајући да ли је $ пос> 0. Ако нема, само ће пресећи садржај на број знакова које сам тражио. Ако има простора, грациозно ће одсећи мој садржај у простору.

Ово је леп начин употребе комбинације максималног броја знакова и одсецања при речи. Надам се да волите!

И сигуран сам да ћу открити постоји ли АСП.НЕТ функција која то ради ... Нисам је могао пронаћи.

Komentari

  1. 1
  2. 2
  3. 3
  4. 4

    Ако је $цонтент у почетку КРАЋИ од $макцхарс, код како је написан ће и даље изгледати здесна налево за размак и исећи последњу реч. Можете или спојити размак на крају $цонтент, или урадити иф (стрлен()…)

  5. 5

    Чинило се да ово функционише као функција (обраћајући се на претходни коментар):

    функција сховекцерпт($цонтент, $макцхарс) {

    иф (стрлен($цонтент) > $макцхарс) {

    $цонтент= субстр($цонтент, 0, $макцхарс);
    $пос = стррпос($цонтент, " ");

    ако ($пос>0) {
    $цонтент = субстр($цонтент, 0, $пос);
    }

    врати $цонтент . "...";

    } Елсе {

    ретурн $ цонтент;

    }

    }

  6. 6

    Шта ако је наш коначни знак знак интерпункције као што је тачка, узвичник или упитник? Нажалост, овај код ће обрисати целу реч која претходи поменутом знаку интерпункције.  

    Мислим да би било боље да напишете нешто мало робусније.

  7. 7

Шта ви мислите?

Ова страница користи Акисмет како би смањила нежељену пошту. Сазнајте како се ваш коментар обрађује.