![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jestem tu nowy zatem jeśli coś jest nie tak proszę o wyrozumiałość i rzeczowe uwagi.
Problem: Prosta funkcja: dostaje 2 wartości (tekst oraz ilość znaków). Chcę aby w zadanym fragmencie tekstu np 35 znaków znalazł ostatnią spację i tekst od początku do ostatniej spacji wyświetlił razem z "...".
Zgodnie z manualem na php.net powinno zadziałać w takiej formie. Niestety tak jak napisałem warunek nie waliduje się, mimo, iż podaję prawidłowe wartości (jakiś tekst ze spacjami i wartość $ile taką, że znajdzie spację). Co więcej przy prawidłowych wartościach w sekcji 'else ...' jak dam var_dump($pos) wyskoczy mi że $pos jest np. int (28). Po dłubaniach doszedłem do wniosku, że $pos dostaje wartość np. 28 i wtedy nijak nie sprawdzi warunku $pos===true, bo true jest typu boolean (0 lub 1). Jedynym rozwiązaniem wydaje mi się kruczek:
czyli wstawiłem dodatkową zmienną $spr, która dostaje wartość z $pos i przerabiam ją na boolean. Mogę sobie teraz sprawdzić $spr (identyczne z $pos). Jeśli ona jest true to reszta pozostaje bez zmian. Prośba do Was, drodzy forumowicze: czy jest lepsze rozwiązanie? Ten post edytował wojcup 26.05.2013, 22:40:47 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przejdź sobie na stronę dokumentacji strrpos i przeczytaj dokładnie sekcję "Return Values" i sprawdź czy ta funkcja zwraca w ogóle "true".
// Edyta. Sory. Nie doczytałem. Masz taki przykładzik:
Ten post edytował ziqzaq 26.05.2013, 22:48:34 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak czytałem to. Wiem, że ona zwraca numer pozycji, ale poniżej też jest przykład, który miał pokazać prawidłowe działanie:
no i u mnie nie sprawdził się... Szukam lepszego i bardziej fachowego niż moje rozwiązania mojego tematu. Dzięki ziqzaq! Rzeczywiście w tym zapisie wszystko działa. Próbowałem czy w tekście bez spacji wszystko jest ok ale działą. Super! Mam jeszcze krótkie pytanie: jeśli nie podam żadnej wartości $ile nie wstawia mi domyślnej 10 za $ile. Dlaczego? Ten post edytował wojcup 26.05.2013, 22:52:39 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli nie podam żadnej wartości to wywala mi:
string(0) "" |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 128 Dołączył: 17.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli ten mój kod wywala ci 'string(0) ""' to coś robisz źle, bo var_dump zrzuca ci coś mało zmiennych
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dla potomności. Tak wygląda kompletna funkcja:
ziqzaq - wywołuję funkcję przez: bo kiedy dawałem samo skrot($text, $ile) nic nie wypisywał. Kiedy spróbowałem Twojej funkcji (oczywiście wcześniej w formularzu nie podawałem nic dla $ile, tylko wpisałem coś dla $text) dla zmiennej $text ładnie wypisał to, co tam podałem ale dla $ile wyskoczyło tylko string(0) "" . Nie wiem, co sprawia, że nie przyjmuje wartości domyślnej. Ten post edytował wojcup 27.05.2013, 08:51:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 20:17 |