![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czesc, mam nastepujacy problem: musze znalezc fragment stringa w stringu. Wszystko jest ok bo do tego moge uzyc metody strpos, ale zauwazylam ze nie zawsze mi dziala. Przyjrzalam sie blizej i o to co wyszlo:
Moja metoda wyglada mniej wiecej nastepujaco:
w niektorych przypadkach jednak string($strToSearch) sie nie wynajduje (mimo tego ze istnieje). Wyswietlilam sobie $text i przypisalam go do nowej zmiennej:
i teraz string wynajduje sie za kazdym razem (czyli $index != false). O co jednak chodzi? dlaczego jak przepisalam wartosc zmiennej $text to $newText to dla $newText mi dziala zawsze? Wypisalam sobie $text i $newText- sa te same. ich dlugosci-te same. sprawdzilam typ poprzez getype - oba string. Nie mam zielonego pojecia o co chodzi?? Czy ktos z Was moze ma? pzdr, misty Ten post edytował misty 9.11.2011, 12:28:09 |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
-------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Stawiam na to, że rozwiązanie problemu znajdziesz w czerwonej ramce na stronie manuala: http://php.net/manual/en/function.strpos.php
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
czesc,
dzieki za odpowiedzi. @blooregard - takie samo zachowanie dla opisanych przeze mnie przypadkow jak dla strpos @Crozin - przeczytales calego mojego posta? nie chodzi o to ze zwraca mi false. niech sobie bedzie false, jesli fraza nie zostala znaleziona. nie to jest problemem. Ten post edytował misty 9.11.2011, 12:52:36 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat @Crozin - przeczytales calego mojego posta? nie chodzi o to ze zwraca mi false. niech sobie bedzie false, jesli fraza nie zostala znaleziona. nie to jest problemem. To chyba ty nie uważnie przeczytałeś.No ale pokolei 1) Piszesz (czyli $index != false) Nie wiem czy wiesz, ale 0 == false jest true, false == false jest true, ale już 0 === false jest false a false === false jest true. 2) $newText = "to jest moj tekst z $text"; Cytat Wypisalam sobie $text i $newText - są takie same Guzik prawda. Jak mogą być takie same, skoro newTekst generujesz z dwóch ciągów: "to jest mój tekst z " oraz z $text? Nie, onie nie są takie same. Z racji, że $text dopisujesz dalej, to strpos nigdy z $newTekst nie da ci 0, zaś z samego tekst może dać ci 0 i jeśli robisz $index != false to możesz mieć problem. Masz robić $index !== false-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
no i chcialam kliknac na "odpowiedz" a kliknelam na "pomogl". ehh, nie da sie tego cofnac chyba. tak, sprawdzilam rowniez z === (nie umiescilam tego w przykladzie i nie napisalam-moj blad). ale wartosc stringow jest rowna (ok, nie sa to te same obiekty - swoja droga czy w phpie to istnieje jako obiekt?).
Skoro wartosci (nie obiekty, ale wartosci) $text i $newText sa te same-dlaczego dla jednego przypadku znajduje mi strpos a dla drugiego nie? z tego co sie orientuje to strpos przeszukuje String - jego wartosc, nic innego. Wiec skoro wartosc jest ta sama-skad rozne zachowania? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Czemu nie napiszesz nam co te twoje rzeczy zawierają? Czemu mamy polegać na Twoich domysłach i sami sie domyślać czy używać == czy może ===? Pomóż nam sobie pomóc.
Co wyświetla? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pokaż cały kawałek kodu, na którym można zaobserwować błędne działanie skryptu.
Cytat swoja droga czy w phpie to istnieje jako obiekt? Nie, w PHP tekst nie jest obiektem.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
wiecie co, mi sie wydaje ze to moze byc wina tego jak te dane sa zapisywane w bazie. tzn: paremeterem ktory przekazuje do mojej funkcji ($text) jest
dana wyciagnieta z bazy. Teraz jak patrze, to nie wyglada ona tak:
tylko
zas do $newText przypisywalam "to jest moj super tekst testowy lalala 1 2 3". Mysle ze to jest problem. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 21:49 |