Danke für deine Mühe. Da ich grad mit der Funktion zu tun habe hab ich das Ganze mal zu einer Funktion zusammengefasst:
PHP-Code:
<?php
function ValidateColor($color) {
// Prüft die eingegebene Farbe auf Ihre Gültigkeit
$color = trim($color);
$err = '';
$valid = true;
// #ffffff / #fff
$hexPattern = '~^#?([0-9a-f]{3}\b|[0-9a-f]{6}\b)$~i';
// rgb(50%, 100%, 150%)
$rgbPatternPercent = '~^rgb\(\s*([0-9]{1,3}%)\s*,\s*([0-9]{1,3}%)\s*,\s*([0-9]{1,3}%)\s*\)$~i';
// rgb(50, 100, 150);
$rgbPatternRGB = '~^rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)$~i';
// Nur zu Testzwecken
echo 'Prüfe ' . $color . ': ';
if(preg_match($hexPattern, $color)) {
$valid = true;
}
elseif(preg_match($rgbPatternPercent, $color, $test)) {
// RED
if($test[1] < 0 OR $test[1] > 100) {
echo "Fehler bei der %-Angabe RED ($test[1])";
$valid = false;
}
// GREEN
if($test[2] < 0 OR $test[2] > 100) {
echo "Fehler bei der %-Angabe GREEN ($test[2])";
$valid = false;
}
// BLUE
if($test[3] < 0 OR $test[3] > 100) {
echo "Fehler bei der %-Angabe BLUE ($test[3])";
$valid = false;
}
}
elseif(preg_match($rgbPatternRGB, $color, $test)) {
// RED
if($test[1] < 0 OR $test[1] > 255) {
echo "Fehler bei der RGB-Angabe RED ($test[1])";
$valid = false;
}
// GREEN
if($test[2] < 0 OR $test[2] > 255) {
echo "Fehler bei der RGB-Angabe GREEN ($test[2])";
$valid = false;
}
// BLUE
if($test[3] < 0 OR $test[3] > 255) {
echo "Fehler bei der RGB-Angabe BLUE ($test[3])";
$valid = false;
}
}
else {
$valid = false;
}
// Ebenso nur zu Testzwecken
if($valid == false) $valid = 0;
return $valid;
}
?>
Normalerweise benutz ich keine ", aber ich war zu faul von daher - entschuldigt bitte

Zum testen:
PHP-Code:
<?php
echo ValidateColor( '#fff' ) . '<br />';
echo ValidateColor( '#ffffff' ) . '<br />';
echo ValidateColor( '#fgf' ) . '<br />';
echo ValidateColor( '#abcdefg ') . '<br />';
echo ValidateColor( 'rgb(1%, 100%, 65%)' ) . '<br />';
echo ValidateColor( 'rgb(101%, 5%, 12%)' ) . '<br />';
echo ValidateColor( 'rgb(200%, 300%, 0%)') . '<br />';
echo ValidateColor( 'rgb(1%, 2%) ') . '<br />';
echo ValidateColor( 'rgb(1, 2, 3)' ) . '<br />';
echo ValidateColor( 'rgb(100, 200, 300)' ) . '<br />';
echo ValidateColor( 'rgb(255, 255, 255)' ) . '<br />';
echo ValidateColor( 'rgb(bla)' ) . '<br />';
echo ValidateColor( 'rgb(100%, 20, 30)' ) . '<br />';
?>
Die Ausgabe ist dann folgende:
Zitat:
Prüfe #fff: 1
Prüfe #ffffff: 1
Prüfe #fgf: 0
Prüfe #abcdefg: 0
Prüfe rgb(1%, 100%, 65% 1
Prüfe rgb(101%, 5%, 12% Fehler bei der %-Angabe RED (101%)0
Prüfe rgb(200%, 300%, 0% Fehler bei der %-Angabe RED (200%)Fehler bei der %-Angabe GREEN (300%)0
Prüfe rgb(1%, 2% 0
Prüfe rgb(1, 2, 3 1
Prüfe rgb(100, 200, 300 Fehler bei der RGB-Angabe BLUE (300)0
Prüfe rgb(255, 255, 255 1
Prüfe rgb(bla 0
Prüfe rgb(100%, 20, 30 0
|