Autor Zpráva
Lokutus7323
Profil *
Ahoj,
mám problém. Mám dejme tomu slovo : $slovo="Pe@tr"; ... a chtěl bych zjitit jestli $slovo osahuje @ ...

Hledám tady nějaou PHP variantu,ale jaksi se mi to nadaří...proto žádám o pomoc zde..

Děkuji
Měsíček
Profil
<?php
  echo "Řetězec ".((($x=strrpos("Pet*r","*"))===false)?"ne":"")."obsahuje znak *.";
?>
SwimX
Profil
regulární výrazy
if (ereg("^.*@.*$", $slovo)) echo "je tam":
Měsíček
Profil
A nebo taky
<?php
  $string = "Pet*r";
    if(strrpos($string,$_=("*"))===false) {
      echo "Řetězec {$string} neobsahuje znak {$_}.";
    } else {
      echo "Řetězec {$string} obsahuje znak {$_}."; 
    }
?>


Reagui na SwimXe:

Proč do toho plést regulární výrazy když od toho máme speciální funkce? Mimoto jak vidím funkci ereg začíná mi být mírně zle.
SwimX
Profil
Měsíček
proč zle z ereg?
strpos sem neznal - omluva
Lokutus7323
Profil *
děkuji...ještě bych se chtěl zeptat, jestli by šlo to samé udělat i pro otazník.. jelikož, když vyměním @ za ? tak to vyhodí chybu...předpokládám, že se budou muset změnit parametry ...
Mastodont
Profil
SwimX
Protože máme preg* funkce?
Lokutus7323
Profil *
děkuji...ještě bych se chtěl zeptat, jestli by šlo to samé udělat i pro otazník.. jelikož, když vyměním @ za ? tak to vyhodí chybu...předpokládám, že se budou muset změnit parametry ...

myslím případ s použitím "ereg"
Měsíček
Profil
Reaguji na Lokutus7323:

Kdyby jsi použil mé řešení nebyl by problém.
DoubleThink
Profil *
SwimX
Hledáš jeden znak, není třeba regulár zaprasit kvantifikátory a hraničními podmínkami.

if (ereg('@', $slovo)) echo "je tam":


Mimoto jak vidím funkci ereg začíná mi být mírně zle.
Pročpak? Neexistuje vhodnější způsob porovnávání obsahu řetězců, než regulárním výrazem. Rozdíl ve výkonu u takového reguláru je minimální a možná i nulový.
A pokud jde o ereg(i) - POSIXový regulár patří mezi ty nejtypičtější, narazíš na něj skoro v každém jazyce.

jestli by šlo to samé udělat i pro otazník
Otazník je operátor, musíš jej escapovat: \?
Měsíček
Profil
Reaguji na DoubleThinka:

"Pročpak? Neexistuje vhodnější způsob porovnávání obsahu řetězců, než regulárním výrazem. Rozdíl ve výkonu u takového reguláru je minimální a možná i nulový.
A pokud jde o ereg(i) - POSIXový regulár patří mezi ty nejtypičtější, narazíš na něj skoro v každém jazyce. "


Už možná kvůli tomuhle (varování a poznámka).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: