Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak w strpos sprawdzic inny tekst
Forum PHP.pl > Forum > Przedszkole
vegeta
Witam. Jak w funkcji strpos sprawdzic czy w zmiennej wystepuje inny ciag znaków?

  1. $szukaj = strpos($URL, ".blip.pl" || ".sympatia.onet.pl");

Nie hasa.
cycofiasz
dla każdego ciągu wywołaj osobno strpos
vegeta
A jest jakas funkcja, ktora sluzy tylko do szukania jakiegos tekstu/liczby w zmiennej? Strpos to domyslnie zwraca pozycję określonego ciągu.
JoShiMa
Manual nie gryzie:

http://pl2.php.net/manual/en/function.preg-match.php
vegeta
A da sie w preg_matchu wyszukac kilka ciagow bez pisania kolejnego preg_matcha? (nie lubie preg matcha, ale jak ma taka opcje to go wezme).
wookieb
Cytat(vegeta @ 19.03.2011, 12:20:47 ) *
A jest jakas funkcja, ktora sluzy tylko do szukania jakiegos tekstu/liczby w zmiennej? Strpos to domyslnie zwraca pozycję określonego ciągu.

A czy znalezienie owej pozycji NIE jest informacją, że tekst został znaleziony?
vegeta
@wookieb: tak, ale musze sie meczyc z podwojnymi strpos'ami dla osobnych domen. np. mam takie cos:

  1. $szukaj = strpos($URL, ".blip.pl");
  2. $szukaj2 = strpos($URL, ".sympatia.onet.pl");
  3. if ($szukaj or $szukaj2 === false) {


  1. if ($szukaj === false || $szukaj2 === false) {


Oba kody przepuszczają złe adresy, nie wiedzieć czemu
JoShiMa
Cytat(vegeta @ 19.03.2011, 12:33:42 ) *
A da sie w preg_matchu wyszukac kilka ciagow bez pisania kolejnego preg_matcha? (nie lubie preg matcha, ale jak ma taka opcje to go wezme).

A czy mógłbyś przeczytać opis tej funkcji łaskawie?
wookieb
  1. if ($szukaj !== false || $szukaj2 !== false) {
  2. // w tekscie wystąpił jeden z dwóch tekstów
  3. }

W preg_matchu da się
  1. preg_match('/ciag1|ciag2/', $tekst);

Ale jeżeli nie znasz wyrażeń regularnych to pozostań przy strpos
vegeta
  1. if (!preg_match('#.blip.pl|.sympatia.onet.pl#is', $URL)) {


Ale preg_match nie czyta mi kropki na początku tj. jesli wpisze samo blip.pl lub sympatia.onet.pl to tez mi nie przyjmuje.
wookieb
A mówiłem, że jak się na tym nie znasz to się za to nie bierz?
Przed kropkami musisz wstawić znak "\"
Po drugie KOD działa tylko po co dajesz negacje?
jaslanin
  1. function isInString($str, $aPhrases){
  2. $search = array_map('preg_quote', $aPhrases);
  3.  
  4. return (bool) preg_match('/(' . implode('|', $search) . ')/is', $str);
  5. }
  6.  
  7. echo isInString("na .sympatia.onet.pl", array('blip.pl', '.sympatia.onet.pl'));
vegeta
Dzięki wookieb
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.