String auswerten ctype

el loco mO

Grünschnabel
ich will überprüfen ob ein String eine gewisse anzahl an Grossbuchstaben oder Kleinbuchstaben oder Zahlen hat.

ich habe versucht das ganze mit ctype_alpha bzw. ctype_digit zu realisiern!

aber irgendwie funktioniert es einfach nicht!

kann mir jem. sagen wie ich das machen muss? also einen string zu anaylisieren auf diese Kriterien ?
 
mit chunk_split(); zerlegen und dann in einer schleife mit ctype_upper() oder ctype_lower(), je nach dem, was du brauchst, überprüfen.
chunk_split() aber nur, wenn du die Anzahl brauchst.
 
ich glaube wir haben uns missverstanden`?!

also ich habe einen String (dfsd453RREcs23) und ich möchte jetzt halt überprüfen ob sich in dem String Zhalen und Grossbuchstaben und Kleinbuchstaben befinden!

mit chunk_split füge ich doch in dem String nur an einer gewählten stelle ein beliebiges trennzeichen ein!
 
Zuletzt bearbeitet:
el loco mO hat gesagt.:
ich will überprüfen ob ein String eine gewisse anzahl an Grossbuchstaben oder Kleinbuchstaben oder Zahlen hat. (...)

el loco mO hat gesagt.:
(...) ich möchte jetzt halt überprüfen ob sich in dem String Zhalen und Grossbuchstaben und Kleinbuchstaben befinden!(...)
Was willst du jetzt? Die Anzahl der einzelnen Arten oder nur prüfen, ob der String aus diesen Zeichen besteht?

Für die Anzahl brauchst du chunk_split(), weil du damit einen String in einzelne Zeichen zerlegen kannst. Die einzelnen Zeichen kannst du dann mit den o.g. Funktionen überprüfen.

Für den grundsätzlichen Bestand verwende das hier:
PHP:
<?php
$string = 'dfsd453RREcs23';
if(!ereg('^([[:alnum:][:space:]-]+)$',$string))
    echo('Der String enthält unerlaubte Zeichen!');
?>
 
ja entschuldigung für die wiedersprüchliche fragestellung!

also: ich habe einen string
Code:
$string = "ABcde123";
und ich will jetzt überprüfen ob in dem string 2 Grossbuchstaben & 2 Kleinbuchstaben & 3 Zahlen drin sind! nur wenn das gegeben ist soll er weiter machen, ich weiss nicht wie ich das mit ereg realisieren soll :rolleyes: :(
 
Ceraph hat gesagt.:
(...)
Für die Anzahl brauchst du chunk_split(), weil du damit einen String in einzelne Zeichen zerlegen kannst. Die einzelnen Zeichen kannst du dann mit den o.g. Funktionen überprüfen.
(...)
In diesem Fall brauchst kein ereg() sondern [phpf]chunk_split[/phpf], wie bereits erwähnt.
 
Ich habe das ganze jetzt mal so gebastelt! hättet ihr das anders oder kürzer oder besser gemacht?

PHP:
 <?
$string = '345WSDRasdf';
echo "<h4>String: ".$string."</h4>";

$countz = 0;
$countu = 0;
$countl = 0;

function stringsplit($string, $the_number)
{
   $startoff_nr = 0;
   $the_output_array = array();

   for($z = 0; $z < $the_number ; $z++)
   {
       $the_output_array[] = substr($string, $z, 1);


   }
   return($the_output_array);
}

$laenge = strlen($string);
$foo = stringsplit($string, $laenge);
echo "<br>Laenge: ".$laenge;

for($i = 0; $i < $laenge; $i++)
{
	if(ereg('([[:digit:]-]+)',$foo[$i])) {

	    $countz++;

	}
}

for($u = 0; $u < $laenge; $u++)
{
	if(ereg('([[:upper:]-]+)',$foo[$u])) {

		$countu++;

	}
}

for($l = 0; $l < $laenge; $l++)
{
	if(ereg('([[:lower:]-]+)',$foo[$l])) {

	    $countl++;


	 }
}


if($countz < 2)
{
	echo "<br><br>zu wenig Zahlen im String";
} else {
	echo "<br><br>Anzahl der Zahlen: ".$countz;

	if($countu < 3)
	{
		echo "<br><br>zu wenig Grossbuchstaben im String";
	} else {
		echo "<br><br>Anzahl der Grossbuchstaben: ".$countu;

		if($countl < 3)
		{
			echo "<br><br>zu wenig Kleinbuchstaben im String";
		} else {
			echo "<br><br>Anzahl der Kleinbuchstaben: ".$countl;
		}
	}
}



?>
 
Zuletzt bearbeitet:
Also gut, bastel ich doch auch mal rum:
PHP:
<?php
$string = '345WSDRasdf';

$ziffer = chunk_split($string,1,"<->");
$expl = explode("<->",$ziffer);

for($i=0;$i<count($expl);$i++) {
    if(ctype_upper($expl[$i]))
	$grossbuchstaben++;
    if(ctype_lower($expl[$i]))
	$kleinbuchstaben++;
    if(ctype_digit($expl[$i]))
	$zahlen++;
}

if($grossbuchstaben < 3)
    echo('<br><br>zu wenig Grossbuchstaben im String');

if($kleinbuchstaben < 3)
    echo('<br><br>zu wenig Kleinbuchstaben im String');

if($zahlen < 2)
    echo('<br><br>zu wenig Zahlen im String');
?>
 
Zurück