Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Funckja sprawdzająca czy znak występuje w tekście
--pastor--
post 15.11.2008, 22:09:43
Post #1





Goście







Witam, chcę sprawdzić czy znak ! znajduje się w zmiennej $tekst. Jakiej funkcji mam użyć??
Go to the top of the page
+Quote Post
marcio
post 15.11.2008, 22:12:18
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Funkcje strpos()/strstr().


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
--pastor--
post 15.11.2008, 22:27:51
Post #3





Goście







  1. <?php
  2. $zdanie = 'To jest ostatni raz!';
  3.  
  4. if (strstr('!',$zdanie) == true) {
  5. echo('jest');
  6. }
  7. ?>


Niestety ten skrypt mi nie działa, nie odnajduje wykrzyknika:/
Go to the top of the page
+Quote Post
nitek
post 15.11.2008, 22:32:38
Post #4





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $zdanie = 'To jest ostatni raz!';
  3.  
  4. if (strpos($zdanie, "!") >= 0) {
  5. echo 'jest';
  6. }
  7. else
  8. {
  9. echo 'nie ma';
  10. }
  11. ?>


btw. echo to nie funkcja, nie dawaj ().

Ten post edytował nitek 15.11.2008, 22:33:30


--------------------
Go to the top of the page
+Quote Post
erix
post 15.11.2008, 22:46:20
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.


Więc takie sprawdzania strpos()>=0, to sobie można... Najbezpieczniej:

  1. <?php
  2. if(strpos($ciag, '!')!==false){
  3. //jest
  4. }
  5. ?>


Ten post edytował erix 15.11.2008, 22:47:22


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zegarek84
post 15.11.2008, 22:47:39
Post #6





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


dobrzes poprawił ale moim zdaniem poprawniej by był warunek:
if (strpos($zdanie, "!") != FALSE)

php manual strpos()


[edit]erix był szybszy ;p choc minimalny blad jest bo 2x == dla równosci a dla róznego tylko != a u niego !== ;p

Ten post edytował zegarek84 15.11.2008, 22:50:09


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
nitek
post 15.11.2008, 22:57:07
Post #7





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


Cytat(erix @ 15.11.2008, 22:46:20 ) *
Więc takie sprawdzania strpos()>=0, to sobie można... Najbezpieczniej:

  1. <?php
  2. if(strpos($ciag, '!')!==false){
  3. //jest
  4. }
  5. ?>


pomyśl co sobie można... funkca zwraca false, nic, albo 0 w przypadku gdy nie znajdzie ciągu, gdy znajdzie, zawsze zwróci zero lub więcej - jednym słowem cyfrę. więc nie wiem czego chcesz od mojego sprawdzenia...?
Cytat który wstawiłeś jest uwagą dla osób, które sprawdzają, czy tekst nie został odnaleziony, a nie tak jak u mnie - tekst został odnaleziony.

Ten post edytował nitek 15.11.2008, 22:57:31


--------------------
Go to the top of the page
+Quote Post
sowiq
post 15.11.2008, 23:11:47
Post #8





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(zegarek84 @ 15.11.2008, 22:47:39 ) *
minimalny blad jest bo 2x == dla równosci a dla róznego tylko != a u niego !== ;p


== to porównanie dwóch wartości (np. zmiennych)
=== to porównanie IDENTYCZNOŚCI, czyli poza zawartością również typ zmiennych musi się zgadzać
Go to the top of the page
+Quote Post
erix
post 15.11.2008, 23:14:38
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
pomyśl co sobie można... funkca zwraca false, nic, albo 0 w przypadku gdy nie znajdzie ciągu, gdy znajdzie

A co, gdy szukany string znajdzie się na pozycji zero? snitch.gif

Sprzeczam się, bo (int)false wynosi 0. A przy sprawdzeniu łącznie i typu, i wartości, to wyjdzie Ci tak, jak powinno - czyli typ i wartość false, a nie tylko wartość.

Ten post edytował erix 15.11.2008, 23:15:01


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
nitek
post 15.11.2008, 23:18:06
Post #10





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


Cytat(erix @ 15.11.2008, 23:14:38 ) *
A co, gdy szukany string znajdzie się na pozycji zero? snitch.gif

Sprzeczam się, bo (int)false wynosi 0. A przy sprawdzeniu łącznie i typu, i wartości, to wyjdzie Ci tak, jak powinno - czyli typ i wartość false, a nie tylko wartość.


ok, zwracam honor i przyznaje się do pomyłki winksmiley.jpg - pewniejszy będzie twój sposób.


--------------------
Go to the top of the page
+Quote Post
zegarek84
post 15.11.2008, 23:25:05
Post #11





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


SORKI ŻE SIĘ WTRĄCAM gdyz w programowaniu uważam siebie za "newbi" ale zacytuje fragment z manuala:
Cytat
  1. <?php
  2. $email  = 'name@example.com';
  3. $domain = strstr($email, '@');
  4. echo $domain; // prints @example.com
  5.  
  6. $user = strstr($email, '@', true); // As of PHP 5.3.0
  7. echo $user; // prints name
  8. ?>

tak wiec nawet jesli '!' znajdzie się na pozycji 0 to zwróci wartość >0 gdyż litera jest bodajże zawsze wjeksza od cyfry - przynajmniej tak mi zawsze wypadała w sortowaniu ;p

false to zawsze jest logiczne 0 a jesli '!' bedzie na pozycji 0 to powinno zwrócić '!' - gorzej gdybysmy szukali znaku '0' ;p - ale tak tylko mi się wydaje - jeśli tak nie jest to mnie poprawcie ;p

Ten post edytował zegarek84 15.11.2008, 23:26:52


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
erix
post 16.11.2008, 10:32:49
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Sory, ale to się ma nijak do sprawdzania obecności znaku; strtr" title="Zobacz w manualu PHP" target="_manual zawsze zwraca wartość typu string, po przetworzeniu oryginału.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
--pastor--
post 16.11.2008, 16:39:45
Post #13





Goście







Ludzie, jak mam sprawdzić czy w ciągu występuje znak?? biggrin.gif Najpr
5a8
ościej, najłatwiej? biggrin.gif
Go to the top of the page
+Quote Post
erix
post 16.11.2008, 16:43:41
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Post #5.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 10:04