preg_match

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Hallo,

Ik heb een kleine functie gemaakt die per veld aangeroepen wordt.
Ik krijg echter een foutmelding.

De functie:
PHP:
function checkinput($sstr, $nmin, $nmax, $bnumbers) {
	$sstrcomp = $bnumbers ? "/^[\-a-zA-Z0-9 ]{$nmin,$nmax}$/" : "/^[\-a-zA-Zéèçàùâêîôûäëïöü ]{$nmin,$nmax}$/";
	return preg_match($sstrcomp, $sstr);
};

De test-aanroep:
PHP:
if (isset($_POST["verzenden"])) {
	$bverzonden = true;
} else {
	$bverzonden = false;
};

$bfoutengevonden = false;

if ($bverzonden) {
	echo checkinput($_POST["bedrijfsnaam"], 2, 30, false);
	echo "<br>";
	echo checkinput($_POST["bedrijfspostcode"], 4, 10, true);
};

De foutmelding:
PHP:
Parse error: syntax error, unexpected ',', expecting '}' in /customers/jemimaja.be/jemimaja.be/httpd.www/webshopdesignersnl/offerte.php on line 500
waarbij line 500 de volgende is:
PHP:
	$sstrcomp = $bnumbers ? "/^[\-a-zA-Z0-9 ]{$nmin,$nmax}$/" : "/^[\-a-zA-Zéèçàùâêîôûäëïöü ]{$nmin,$nmax}$/";
en als ik die weglaat en de gewenste "$sstrcomp" rechtstreeks in de reg_match zet, dan blijft het probleem.

Wat zit er mis?

Groetjes,

Jeroen
 
Laatst bewerkt:
Wellicht dat het door de dubbel-quotes komt.

Probeer dit eens:
PHP:
    $sstrcomp = $bnumbers ? '/^[\-a-zA-Z0-9 ]{'. $nmin.' ,'. $nmax.' }$/' : '/^[\-a-zA-Zéèçàùâêîôûäëïöü ]{'. $nmin.' ,'. $nmax.'}$/';
 
Kon inderdaad zijn, maar dat was het niet. Het was het feit dat ik die $nmin en $nmax niet buiten de quotes zette
{$nmin,$nmax} moest dit zijn: "...{" . $nmin . "," . $nmax . "}..."
Dank je wel voor de oplossing.
 
Dus single-quotes met variabelen escapen werkte niet?
Dubbele-quotes met variabelen escapen wel?
 
Ze werken beiden, zolang je ze maar niet mixt.
Dit werkt niet: "....{' . $nmin . '," . $nmax . '{....'
Dit wel: "....{" . $nmin . ',' . $nmax . "{...."
Gewoon sluiten waarmee je geopend hebt.
 
Ja dat is logisch :)

Vroeg me alleen af of er verschil zat tussen single- of double-quotes, blijkbaar niet :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan