Preg_match problem. Hjælp til reggex?
Hej eksperter!Jeg har et lille problem (som i nok har regnet ud) som jeg håber i kan hjælpe med.
Jeg har lavet mig en tagwall hvor jeg for sjov skyld vil lave en bot som at man kan skrive til, og den så skal svarer.
Har lavet en måde hvorpå at man kan sætte et spørgsmål ind i min MySQL, og et svar der passer til spørgsmålet.
Sådan at hvis man skriver :bot "hej", svarer min bot "Hej (navn)".
Har fået det til at virke at den kigger databasen igennem for ord, og ved hjælp af preg_match siger mit script om brugerens spørgsmål passer til noget i databasen.
Indtil videre er der kun spørgsmålet:
Hej bot!
I databasen, hvortil der er svaret:
Hej (navn)!
(navn) bliver skiftet ud med brugerens navn automatisk (virker også).
Som jeg skrev før har jeg fået det til at virke hvis man skriver hej til botten, at den så svarer hej (navn).
Man kan skrive "hej", "bot", eller "hej bot", og få svaret "hej (navn)".
Men mit problem er hvis du skriver "hej med dig bot", så kommer min preg_match tilbage negativ på grund af de midterste ord.
Hvordan løser jeg dette? Mit teste script ser lige nu sådan ud:
$besked = $_GET['besked'];
$besked = preg_replace('/ /', "(.*?)", $besked);
$besked = "/" . $besked . "/";
$spg = "hej bot!";
$svr = "Hej (navn)!";
if (preg_match("$besked", "$spg")) {
echo "$svr";
} else {
echo "øv bøv bæv!";
}
Det at jeg udskifter "mellemrum" med (.*?) var et forsøg på at "overse" alt mellem "hej" og "bot".
Håber i kan hjælpe!!!
Mvh. Christian.
