Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]pomoc ze zrozumieniem funkcji strpos
Forum PHP.pl > Forum > Przedszkole
Majzel
mam taki kod:
  1. <?php
  2.  
  3. $news = 'tomek osaojd aso dosk aotomek teomtoemteomost df kaspdofkapos';
  4.  
  5. $ile = 10;
  6. if (strlen($news)>$ile) {
  7. $skrocone = substr($news,0,strpos($news, ' ', 10));
  8. echo $skrocone.'...';
  9. }
  10.  
  11. ?>

no i działa świetnie, zaokrągla do 10 znaków i jakoś też do pełnego wyrazu, i moje pytanie jak to działa? czytałem o tej funkcji strpos no i sie dowiedziałem, że ona odnajduje pozycję w ciągu znaków czyli np.:
  1. <?php
  2. $test = 'cześć świat';
  3. echo strpos($test, 'ś');
  4. ?>

zwróci 3, bo ś jest na 3 miejscu licząc od 0.
Ale jakie ta funkcja ma zadanie w tym powyższym skrypcie z zaokrąglaniem wyrazów? ;/
Cienki1980
Sprawdź w manualu za co jest odpowiedzialny trzeci parametr w funkcji strpos(). To powinno wyjaśnić Ci jak to działa że daje takie efekty.
Majzel
no z angielskiego tak jakby rozumiem, że jest on odpowiedzialny za określenie odkąd ma zacząć wyszukiwanie w stogu. ale dalej nie rozumiem, jak to działa, że zamiast zwrócić tomek osao zwraca tomek osaojd, nie wiem, nie umiem tego zrozumieć, możesz mi podać jakiś przykład albo coś? jak to działa?
  1. <?php
  2. substr($news,0,strpos($news, ' ', 10))
  3. ?>

to jest moja nie wiadoma, o co tu chodzi?
Cienki1980
Proste jak budowa gwoździa.

Substr(skad,poczatek,koniec); >> rozwijamy temat:
- skąd - > zmienna $news czyli ciąg znaków
- początek - > 0 ( zero )
- koniec - > wartość z funkcji strpos();


Strpos(skad,znak,przesuniecie); >> rozwijamy temat:
- skad - > zmienna $news czyli ciąg znaków
- znak - > szukamy spacji
- przesunięcie - > szukamy od danego miejsca pierwszego wystapienia znaku okreslonego w 'znak'

Tak więc w takim zapisie Strpos() zwroci Ci pozycję pierwszej spacji po 10 znaku w tekscie ... a Substr() zwroci ten kawałek
fiore
I o to mi chodziło. Bardzo dobrze wytłumaczyłeś. Thx
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.