Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] in_array(); i znak
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


Witam ponownie życząc przyjemnego piątunia (IMG:style_emoticons/default/smile.gif) krótkie pytanie - patrzyłem po manualu i nie znalazłem, mam sobie co takiego:

  1. <?php
  2. $user = explode(',', $users);
  3. if (in_array("@", $user)) {$u = count($user);}
  4. else {$u = 0;}
  5. $x = 0;
  6. ?>


jak widac chce zobaczyc czy w tablicy wystepuje znak - nie zmienna - i nie wiam jak to zrobic - chodzi o to zeby sprawdzic czy przynajmniej jeden adres mailowy znajduje sie w tablicy, czyli wyszukac "małpy"
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Sprawdź adres za pomocą filter_var
Go to the top of the page
+Quote Post
shpaque
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


ok, ale za pomoca filter_var sprawdze czy email jest poprawny, a co w przypadku kiedy mam w tablicy, ktora jest teoretycznie pusta jakis BOM? nie ma opcji zeby znalezc w strinach znajdujacych sie w tablicy jeden znak? wtedy wiadomo czy w tablicy w ogole jest uzyty? cos jak strstr tyle ze w tablicy

Ten post edytował shpaque 15.12.2017, 13:50:40
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Stristr i podobne. To jak wyglada tablica którą przeszukujesz?
Go to the top of the page
+Quote Post
Tomplus
post
Post #5





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


użyj preg_match(), otrzymasz informacje czy w ciągu znaków znajduje się wybrany przez Ciebie znak.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Tomplus do tak prostego zadania wystarczy naprawde
http://php.net/manual/en/function.strpos.php
Go to the top of the page
+Quote Post
shpaque
post
Post #7





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


preg_math() nie ma znaczenia czy szuka w stringach znajdujacych sie w tablicy czy nie?

bo inaczej musialbym zrobic odwrotnie:
  1. <?php
  2. if (strstr($users, "@"))
  3. {
  4. $user = explode(',', $users);
  5. $u = count($user);
  6. }
  7. else
  8. {
  9. $u = 0;
  10. }
  11. $x = 0;
  12. ?>


generalnie wyglada to tak, eamile jesli sa, znajduja sie w tablicy w postaci stronga: "email1@cos.com,email2@cos.com,email3@cos.com" wiec i tak musze go explodowac zeby zrobic arraya tylko wtedy sprawdzac czy tak jak pisalem wysej strstr
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i w czym problem czy zrobisz explode wczesniej czy pozniej? Efekt ten sam. Nie liczac rzecz jasna faktu, ze przy takim tekscie

email1@cos.com,blabla,blabla

twoje $u bedzie zawierac nadal 3
Go to the top of the page
+Quote Post
shpaque
post
Post #9





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

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


@nospor, ale strpos szuka tylk ow stringu? czy w stringach w w tablicy tez?

to jest zabezpieczone wczesniej bo formularz nie pusci nic innego niz prawidlowy i zweryfikowany email, wiec w tym arrayu moga byc tylko maile albo jakies ukryte znaki; juz dziala to co napisalem powyzej - dzieki - do zamkniecia.
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Czyli lepiej by było zrobić explode i na wynikowej tablicy filter_var tak jak pisałem na początku. Coś dziwny ten walidator skoro taki wynik przepuszcza.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 13:43