Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wunkcja szukająca fragmętu w tekście
Forum PHP.pl > Forum > Przedszkole
GoOx
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

vokiel
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)
gothye
strpos
GoOx
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
celbarowicz
Zamiast wunkcji zastosuj frygment fukci. Penc można.
Sky_walker
=== 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)
GoOx
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
Majkelo23
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ę.
crocodillo
Tak jak już prędzej zostało napisane: strpos(). Napisz co Ci przeszkadza w tej funkcji.
GoOx
dzięki strstr zadziałało najlepiej
crocodillo
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.
Majkelo23
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.
crocodillo
@Majkelo23: strstr() nie zwraca true, tylko ciąg lub false.
Majkelo23
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.
crocodillo
Wiem, że to wygląda jak kłótnia, chyba pisaliśmy poprzednie posty w tym samym czasie, bynajmniej kłócić się nie chciałem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.