Allt detta kan man göra med regualt expression. På www.phpbuilder.com finns en mycket bra column om dessa.
/Niels
------------------
www.bosma.space2u.com
7 svar · 254 visningar · startad av stevenet
Jag skulle vilja kontrollera $text, så att det endast innerhåller A-Za-z0-9.
I ett internt meddelandesystem jag håller på med, har jag ett mindre problem. När man svarar på ett meddelande, som tidigare besvarats, blir det "SV: SV: ämne". Hur gör jag för att $amne bara skall innehålla ett "SV:", detta för att slippa en oändlig lista med "SV:".
Jag vill även kunna skriva ut domändelen (webforum.nu) ur en epostadress, som vi kan kalla $epost.
------------------
SteveNet - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.
Allt detta kan man göra med regualt expression. På www.phpbuilder.com finns en mycket bra column om dessa.
/Niels
------------------
www.bosma.space2u.com
Prova detta:
<?
$text="qwe23";
if(preg_match("/^([A-Za-z0-9]+)$/",$text))
echo "ok\n";
else
echo "fel\n";
$text="nicclas@spray.se";
if(!preg_match("/^SV:/",$text))
$text="SV: ".$text;
echo "$text\n";
$text="SV: nicclas@spray.se";
if(!preg_match("/^SV:/",$text))
$text="SV: ".$text;
echo "$text\n";
$text="nicclas@spray.se";
preg_match("/@[\w|\.]+/",$text,$out);
echo substr($out[0],1)."\n";
?>
/nicclas - http://www.nic-sys.se
[Redigerat av nicclas den 05 sep 2000]
Tack! nicclas, borde de inte utnämna dig till moderator snart?
------------------
SteveNet - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.
Några kommentarer (inte menade som kritik):
if(preg_match("/^([A-Za-z0-9]+)$/",$text))
Blir något enklare (och troligen lite snabbare) om man vänder på problemet. Att i stället för att kolla så att alla är giltiga, leta efter exakt ett ogiltigt tecken (resultatet blir ju detsamma).
if (ereg('[^A-Za-z0-9]',$text))
// Fel
else
// Ok
preg_match("/@[\w|\.]+/",$text,$out);
echo substr($out[0],1)."\n";
Här kan man ju även använda explode() om man vill.
list ($user, $domain) = explode('@', $text);
echo "$domain\n";
Går snabbare (enligt manualen) eftersom inga regexp används ö.h.t.
------------------
Robban < robban@lipogram.com >
[Redigerat av Robban den 06 sep 2000]
Jo, explode är ju smartare. Var så inställd på att träna mig på reg.exp:ar att jag inte såg de andra möjligheterna. :)
Moderator = Städare ? Nej, tack.
/nicclas - http://www.nic-sys.se
[Redigerat av nicclas den 06 sep 2000]
"SV-funktionen" fungerar inte, den skriver ut samtliga SV:. Finns det något sätt att bara rensa ut alla SV: i en sträng vid namn $epost.
$epost = "SV: SV: SV: hej";
------------------
SteveNet - stevenet@webmarkit.net
Stjäl inte mer än vad du kan bära, staten hatar konkurrens.
Jo, som jag hade tanke mig, sa skall du gora en funktion som bara lagger till SV: om det ar sa att SV: inte redan finns...
Vill du dessutom rensa bort alla SV: sa kanske du kan gora str_replace till "tomt" pa dessa forst...
/nicclas - http://www.nic-sys.se (Jobbigt med aao i Italien :) )