stevenetMedlem sedan juni 2000985 inlägg
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.
nielsMedlem sedan juli 2000215 inlägg
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
nicclasMedlem sedan feb. 20001 061 inlägg
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]
stevenetMedlem sedan juni 2000985 inlägg
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.
RobbanMedlem sedan dec. 19992 272 inlägg
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]
nicclasMedlem sedan feb. 20001 061 inlägg
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]
stevenetMedlem sedan juni 2000985 inlägg
"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.
nicclasMedlem sedan feb. 20001 061 inlägg
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 :) )