Autor | Zpráva | ||
---|---|---|---|
Lokutus7323 Profil * |
#1 · Zasláno: 14. 1. 2009, 18:57:50
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 |
#2 · Zasláno: 14. 1. 2009, 19:00:45 · Upravil/a: Měsíček
<?php echo "Řetězec ".((($x=strrpos("Pet*r","*"))===false)?"ne":"")."obsahuje znak *."; ?> |
||
SwimX Profil |
#3 · Zasláno: 14. 1. 2009, 19:01:35 · Upravil/a: SwimX
regulární výrazy
if (ereg("^.*@.*$", $slovo)) echo "je tam": |
||
Měsíček Profil |
#4 · Zasláno: 14. 1. 2009, 19:08:28 · Upravil/a: Měsíček
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 |
#5 · Zasláno: 14. 1. 2009, 19:14:35
Měsíček
proč zle z ereg? strpos sem neznal - omluva |
||
Lokutus7323 Profil * |
#6 · Zasláno: 14. 1. 2009, 19:15:18
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 |
#7 · Zasláno: 14. 1. 2009, 19:16:08
SwimX
Protože máme preg* funkce? |
||
Lokutus7323 Profil * |
#8 · Zasláno: 14. 1. 2009, 19:17:05
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 |
#9 · Zasláno: 14. 1. 2009, 19:18:06
Reaguji na Lokutus7323:
Kdyby jsi použil mé řešení nebyl by problém. |
||
DoubleThink Profil * |
#10 · Zasláno: 14. 1. 2009, 19:20:00 · Upravil/a: DoubleThink
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 |
#11 · Zasláno: 14. 1. 2009, 19:26:47 · Upravil/a: Měsíček
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). |
||
Časová prodleva: 15 let
|
0