Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wunkcja szukająca fragmętu w tekście
GoOx
post
Post #1





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


Witam,
jak w temacie, jak wyszukać np:

mamy tekst :
  1. $cos = "mam psa";
  2.  
  3. $cos2 = "ja mam psa!";

i jak z zmiennej $cos2 wyciągnąć $cos ?

chodzi mi o porównanie by
  1. if($cos == $cos2 ) {

zadziałało

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Masz do wyboru wiele różnych funkcji, w zależności od potrzeb, zaczynając od: http://www.php.net/manual/en/ref.strings.php (strrpos, strstr, substr etc), aż do http://ru2.php.net/manual/en/ref.pcre.php (preg_match, preg_match_all)
Go to the top of the page
+Quote Post
gothye
post
Post #3





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


strpos
Go to the top of the page
+Quote Post
GoOx
post
Post #4





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


ehh to chyba nie to.
chodziło mi o np takie coś:
  1. $siem1 = "Siemasz!";
  2.  
  3. $siem2 = "Siema";


i dalej

  1. $siem_w = funkcja($siem1, $siem2, $siem_w);
  2. echo $siem_w ; /// to ma nam dać "Siema"


jest coś podobnego do tego? lub coś takiego?

co oznacza === w if?

O jest znalazłem to czego szukałem i w dodatku działa lepiej bo zwraca true lub false

funkcja strpbrk

Ten post edytował GoOx 27.03.2012, 17:29:23
Go to the top of the page
+Quote Post
celbarowicz
post
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Zamiast wunkcji zastosuj frygment fukci. Penc można.
Go to the top of the page
+Quote Post
Sky_walker
post
Post #6





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


=== oznacza dokładne porównanie, wliczając w to typ zmiennej.
== oznacza luźne porównanie, bez względu na typ zmiennej.

np:
"1"==1 da ci true
ale już:
"1"===1 da ci false

można też tak:
  1. $a = "12.3";
  2. $b = 12.3;
  3. (float)$a === (float)$b


czyli wymusić identyczny typ na obu zmiennych (w tym przypadku ułamek)

Ten post edytował Sky_walker 27.03.2012, 17:31:32
Go to the top of the page
+Quote Post
GoOx
post
Post #7





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


ehh chyba nadal mamy problem :/

funkcja strpbrk prawie na cokolwiek oddaje true

może tez być funkcja która będzie mówiła czy dany wyraz tam jest w tym tekście czy nie
Go to the top of the page
+Quote Post
Majkelo23
post
Post #8





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


http://webmade.org/kursy-online/porownywan...ow-kurs-php.php

Jest tam też coś takiego jak strstr() co zwróci Ci TRUE jeśli jest dany ciąg lub FALSE jeśli go brak. Ale ogólnie przejrzyj całą tą stronę, przyda Ci się.

Ten post edytował Majkelo23 27.03.2012, 17:52:24
Go to the top of the page
+Quote Post
crocodillo
post
Post #9





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Tak jak już prędzej zostało napisane: strpos(). Napisz co Ci przeszkadza w tej funkcji.
Go to the top of the page
+Quote Post
GoOx
post
Post #10





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


dzięki strstr zadziałało najlepiej
Go to the top of the page
+Quote Post
crocodillo
post
Post #11





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Notka, zamieszczona przy opisie strstr():

Note:

If you only want to determine if a particular needle occurs within haystack, use the faster and less memory intensive function strpos() instead.
Go to the top of the page
+Quote Post
Majkelo23
post
Post #12





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Cytat(crocodillo @ 27.03.2012, 19:07:23 ) *
Notka, zamieszczona przy opisie strstr():

Note:

If you only want to determine if a particular needle occurs within haystack, use the faster and less memory intensive function strpos() instead.



O tym samym można przeczytać w moim linku:

Cytat
Pomimo, że funkcji strstr() można używać do sprawdzania czy jeden ciąg jest częścią drugiego, to jest ona nieefektywna. Lepiej skorzystać z funkcji strpos().

Jego wybór.
Go to the top of the page
+Quote Post
crocodillo
post
Post #13





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


@Majkelo23: strstr() nie zwraca true, tylko ciąg lub false.
Go to the top of the page
+Quote Post
Majkelo23
post
Post #14





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


Cytat(crocodillo @ 27.03.2012, 19:08:57 ) *
@Majkelo23: strstr() nie zwraca true, tylko ciąg lub false.


Źle się wyraziłem ;] Zwraca prawdę, jeśli zawrzemy to w warunku (czyt. warunek się spełni lub nie), dokładniej chodzi mi o ten przykład:

Kod
<?

$email = "prezydent@polska.pl";

if(strstr($email, "polska")!==False)
echo "Email ma w sobie słowo 'polska'";

?>


Chyba nie ma sensu się kłócić o dwie funkcje? wiadomo, że powinien wykorzystać strpos(), a co zrobi to jego sprawa.

Ten post edytował Majkelo23 27.03.2012, 18:11:42
Go to the top of the page
+Quote Post
crocodillo
post
Post #15





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Wiem, że to wygląda jak kłótnia, chyba pisaliśmy poprzednie posty w tym samym czasie, bynajmniej kłócić się nie chciałem
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: 22.08.2025 - 19:45