Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak znalezc roznice w takich samych stringach
misty
post
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:

  1. function test($text, $strToSearch) {
  2. $index = strpos($text, $strToSearch);
  3. var_dump($index);
  4. }


w niektorych przypadkach jednak string($strToSearch) sie nie wynajduje (mimo tego ze istnieje). Wyswietlilam sobie $text i przypisalam go do nowej zmiennej:

  1. function test($text, $strToSearch) {
  2.  
  3. $newText = "to jest moj tekst z $text";
  4. $index = strpos($newText, $strToSearch);
  5. var_dump($index);
  6. }



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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 02:27