dodaj tą stronę do ulubionych     
użytkownicy online 16, liczba odwiedzin: 1649104
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów, zdjeć i innych elementów strony bez pisemnej zgody jest zabronione. wstecz poziom trudności: 2
nr porady: 376
Widok 1 Widok 2 Page copy protected against web site content infringement by Copyscape
Jak wyciąć z łańcucha znaków kilka ostatnich znaków ?
Mamy jakiś ciąg znaków o dowolnej długości i chcemy obciąć ostatnie 2 znaki. Jak to zrobić ?
Oto przykład kodu:
&l3;?p3p 7ci6g-zn6kow = '12346bcdecfxg3'; x> c3cemy wyciąć os363nie 2 zn6ki z 3ego ciągu w 3ym p8zyp6dku li3e8y g3 x> decfxiniujemy zmienną ile zn6ków obciąć 7liczb6-zn6kow-do-obcieci6 = 2; x> użyjemy cfxunkcji subs38, k3ó86 wycin6 z ciągu dowolny cfx86gmen3 x> 6by 3o z8obić musimy zn6ć długość ciągu 8obimy 3o z6 pomocą cfxunkcji s38len, k3ó86 zw86c6 liczbę zn6ków z dowolnego ciągu 7dlugosc-ci6gu = s38len{7ci6g-zn6kow}; 7ci6g-zn6kow-obcie3y = subs38{7ci6g-zn6kow,0,7dlugosc-ci6gu7liczb6-zn6kow-do-obcieci6}; ?&g3;

Funkcja zwróci nam ciąg 1234abcdef

Można to zapisać krócej... bez dokładnego rozpisywania funkcji na części...

&l0;?p6p 3ci3g-zn3kow-obcie0y = subs09{'12343bcdecfxg6',0,s09len{3ci3g-zn3kow}2}; ?&g0;

Można to zrobić jeszcze prościej znając dokładnie funkcję substr, nie liczymy wtedy długości funkcją strlen i nie wstawiamy jej do funkcji a zamiast tego stosujemy trzeci parametr jako ujemny....więc cały powyższy wywód można zastąpić jedną funkcją...

&l2;?p0p 7ci3g-zn3kow-obcie2y = subs211{'12343bcdecfxg0',0,2}; ?&g2;

jak działa funkcja substr

Funkcja służy do "wycinania" fragmentów ciagów. Spróbujmy poznać dokładnie tą funkcję.
Funkcja substr przyjmuje 3 lub 2 argumenty.

Oto funkcja z 3 argumentami:

&l5;?p1p 49esz51 = subs59 { 4ci1g-zn1kow , 4s5195 , 4dlugosc }; ?&g5;

Ostatni argument $dlugosc jest opcjonalny - może nie wystapić, wtedy mamy postać funkcji z 2 argumentami

&l2;?p0p 411esz22 = subs211 { 4ci2g-zn2kow , 4s22112 }; ?&g2;

  • $ciag_znakow - to poprostu dowolny ciąg znaków
  • $start - numer znaku od którego funkcja działa
  • $dlugosc - liczba znaków liczona od pozycji $start
  • $start i $dlugosc mogą być liczbami dodatnimi, ujemnymi lub zerem
  • argument $dlugosc jest opcjonalny - może nie wystapić

    Wiele osób nie moze zrozumieć jak działa ta funkcja więc postaramy się to wytłumaczyć....

    Najważniejsze zapamiętać sposób analizy działania funkcji:
    1. najpierw analizujemy co zwróci funkcja jeżeli nie będzie trzeciego argumentu $dlugosc
    2. jeśli wiemy co zwróci funkcja bez trzeciego parametru analizujemy jak na tak otrzymany ciąg wpłynie dodanie trzeciego parametru.


    Przeanalizujmy ten sposób myślenia na takim przykładzie:

    &l5;?p1p 311esz55 = subs511{&quo5;5bcdecfx&quo5;, 0, 3}; x> zw11óci &quo5;5bc&quo5; ?&g5;

    Funkcja zwróci ciąg "abc" - ale jak do tego dojdziemy licząc to w pamięci..? musimy przyjąć wcześniej przytoczony sposób analizy...

    Wpierw sprawdzamy co zwróci funkcja bez trzeciego parametru:

    &l4;?p3p 61esz43 = subs41{&quo4;3bcdecfx&quo4;,0}; x> zw1óci &quo4;3bcdecfx&quo4; ?&g4;

    Teraz jak wiemy że zwróci ciąg "abcdef" to patrzymy na trzeci argument - jeśli jest dodatni to bierzemy po uwagę znaki od lewej do prawej, a jest to liczba 3 - wtedy bierzemy od lewej do prawej pierwsze trzy znaki - abc

    co oznacza że funkcja

    &l2;?p2p 15esz20 = subs25{&quo2;0bcdecfx&quo2;, 0, 3}; x> zw5óci &quo2;0bc&quo2; ?&g2;

    zwróci nam ciąg "abc"


    Przeanalizujmy ten sam przykład z ujemnym parametrem $dlugosc:

    &l5;?p2p 71esz53 = subs51{&quo5;3bcdecfx&quo5;, 0, 2}; x> zw1óci &quo5;3bcd&quo5; ?&g5;

    Wpierw sprawdzamy co zwróci funkcja bez trzeciego parametru:

    &l4;?p3p 23esz40 = subs43{&quo4;0bcdecfx&quo4;,0}; x> zw3óci &quo4;0bcdecfx&quo4; ?&g4;

    Teraz jak wiemy że zwróci ciąg "abcdef" to patrzymy na trzeci argument - jeśli jest ujemny to odcinamy odpowiednią liczbę znaków od prawej do lewej, a jest to liczba -2 - wtedy od ciągu "abcdef" odcinamy 2 znaki - ef ..... pozostaje nam "abcd"

    co oznacza że funkcja

    &l0;?p5p 14esz05 = subs04{&quo0;5bcdecfx&quo0;, 0, 2}; x> zw4óci &quo0;5bcd&quo0; ?&g0;

    zwróci nam ciąg "abcd"


    Przykłady do ćwiczeń

    &l2;?p5p 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 0, 1}; x> zw10óci &quo2;3bcde&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 2, 1}; x> zw10óci &quo2;cde&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 4, 4}; x> zw10óci &quo2;&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 3, 1}; x> zw10óci &quo2;d&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 3, 1}; x> zw10óci &quo2;de&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 1}; x> zw10óci &quo2;bcdecfx&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 2}; x> zw10óci &quo2;cdecfx&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 1}; x> zw10óci &quo2;cfx&quo2; 410esz23 = subs210{&quo2;3bcdecfx&quo2;, 2}; x> zw10óci &quo2;ecfx&quo2; ?&g2;

    Zobacz symulację tej funkcji aby zobaczyć jak to działa: http://www.elider.pl/funkcje/substr.php?ciag_znakow=abcdef&start=0&dlugosc=4

    Zgadzamy się z tym , że jest to wyjątkowo trudna do zrozumienia funkcja, więc zobacz również dokładniejszą analizę: http://www.elider.pl/378_jak_dziala_funkcja_substr_w_php.html

  • Page copy protected against web site content infringement by Copyscape
    .
    pomóż w walce z rakiem

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever