Funktion: Das Ende von kleingeschriebene Posts

tobee

Erfahrenes Mitglied
Hallo,

ich habe mir überlegt eine funktion zu schreiben die kontrolliert ob der user nur kleinbuchstaben benutzt. wie ich jetzt hier gerade schön demonstrier ( nur zur veranschulichung :) ).

PHP:
<?php
function caseSensitive($string, $minUpper = "10")
{
  
  $this->Count = 0;
  $this->UpperChars = array("41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A");
  $this->Lenth = strlen($string);
  
	for($c = 0; $c < $htis->Length; $c++)	{
	  $this->Char = ord($string[$c]);
		if(in_array($this->Char, $this->UpperChars))	{
		  $this->Count++;
		}  
	}
	
	if($this->Count < $minUpper)	{
	  $r = "Du musst mal Worte mit Großbuchstaben schreiben";
	}
	else	{
	  $r = true;
	}
	
	return $r;
	
}
?>

Wäre das vom Lösungsansatz her richtig?
Würde mich über Tipps oder Anregungen freuen?

Tobee
 
Hältst du es für sinnvoll, vorzugeben, wie viele Großbuchstaben in einem Text vorkommen müssen? Denn dieser Beitrag würde die Vorgabe von zehn Großbuchstaben nicht erfüllen.
 
Steckt das ganze in einer Klasse?
Wenn ja, sind die ganzen Klassen-Variablen wirklich in der ganzen Klasse noetig oder nur in der Funktion? Irgendwie kann ich mir naemlich nicht vorstellen, dass all diese Variablen die Du da setzt in der ganzen Klasse genutzt werden sollen.
 
Hmm, mal abgesehen von so ein, zwei unsinnigen Dingen ($this im Funktionskontext? Typos ohne Ende etc.) sehe ich da nur wie deine Funktion einzelne Worte überprüft, aber nicht einen gesamten Post.

Der Counter würde auch ansprechen wenn ich zum Beispiel "hOMepaGE" schreiben würde, was nun auch nicht gerade besser ist als jedes Wort klein zu schreiben.

Ich halte es, wenn überhaupt, dann doch für sinnvoller zu testen, ob der erste Buchstabe des Wortes klein geschrieben ist.

Außerdem muss man dann immer noch gewisse Sonderfälle beachten, da es durchaus vorkommen kann (und nicht falsch ist), das ein gesamter Beitrag klein geschrieben ist, etwa wenn er einfach nur einen Quellcode enthält, weil dies gefordert wurde. Oder, oder, oder. Aber du prüfst Buchstabe für Buchstabe, was so sicher nicht richtig ist.
 
Gumbo hat gesagt.:
Hältst du es für sinnvoll, vorzugeben, wie viele Großbuchstaben in einem Text vorkommen müssen? Denn dieser Beitrag würde die Vorgabe von zehn Großbuchstaben nicht erfüllen.
Nein, aber das wird noch verfeinert. Zum Beispiel wenn der gesamt Post 100 Zeichen hat müssen zum Beispiel 5 Zeichen oder auch 10 Zeichen Großbuchstaben sein.
Er nimmt die 10 doch nur wenn ich keinen Parameter übergebe?

Dennis Wronka- hat gesagt.:
Steckt das ganze in einer Klasse?
Wenn ja, sind die ganzen Klassen-Variablen wirklich in der ganzen Klasse noetig oder nur in der Funktion? Irgendwie kann ich mir naemlich nicht vorstellen, dass all diese Variablen die Du da setzt in der ganzen Klasse genutzt werden sollen.
Dann hat der wo mir php erklärt mir was falsches erzählt. Er hatte gemeint das wäre vom Syntax her besser wenn ich alle Variabeln mit $this definier.

<edit>
Sir Robin hat gesagt.:
Hmm, mal abgesehen von so ein, zwei unsinnigen Dingen ($this im Funktionskontext? Typos ohne Ende etc.) sehe ich da nur wie deine Funktion einzelne Worte überprüft, aber nicht einen gesamten Post.

Der Counter würde auch ansprechen wenn ich zum Beispiel "hOMepaGE" schreiben würde, was nun auch nicht gerade besser ist als jedes Wort klein zu schreiben.

Ich halte es, wenn überhaupt, dann doch für sinnvoller zu testen, ob der erste Buchstabe des Wortes klein geschrieben ist.

Außerdem muss man dann immer noch gewisse Sonderfälle beachten, da es durchaus vorkommen kann (und nicht falsch ist), das ein gesamter Beitrag klein geschrieben ist, etwa wenn er einfach nur einen Quellcode enthält, weil dies gefordert wurde. Oder, oder, oder. Aber du prüfst Buchstabe für Buchstabe, was so sicher nicht richtig ist.
War ja die erste Version von der Funktion. Ich hatte den Gedanken, die Funktion in 5 Minuten geschrieben und wollte Feedback
</edit>
 
Zuletzt bearbeitet:
Da hat Dir meiner Meinung wirklich jemand Kaese erzaehlt, denn mit $this-> sprichst Du eigentlich Variablen an die sich in einer Klasse befinden.
Mal ein kleines, sinnfreies Beispiel:
PHP4:
PHP:
class testdummy
{
 var $blabla;

 function setblabla($bla)
 {
  $this->blabla=$bla;
 }

 function retblabla()
 {
  return $this->blabla;
 }
}
PHP5:
PHP:
class testdummy
{
 private $blabla;

 public function setblabla($bla)
 {
  $this->blabla=$bla;
 }

 public function retblabla()
 {
  return $this->blabla;
 }
}
Der Unterschied zwischen PHP4 und PHP5 ist hier, dass im bei PHP4 auch von aussen direkt auf blabla zugegriffen werden kann. Dies kann bei PHP5 durch die Deklaration als private unterbunden werden. Mit public kann aber auch das gleiche Verhalten wie bei PHP4 erreicht werden. Jedoch entspricht es, soweit ich weiss, eher sauberem OOP wenn man nicht direkt auf Klassenvariablen zugreift sondern alles den Methoden der Klasse ueberlaesst.
 
Eine bestimmte Anzahl von oder einen bestimmten Anteil an Großbuchstaben vorzugeben, halte ich für völlig sinnlos. Genau so gut könnte man vorgeben, dass ein 100 Zeichen langer Text mindestens x-viele Satzzeichen haben muss. Doch die Sprache ist einfach viel zu komplex und gleichzeitig zu flexibel, um solche Vorgaben zu machen.
 
@Dennis:
Da denkt man hat eine gute eine saubere Programmierung so wie mein Kolleg erzählt hat.
Und dann war es eigentlich grottenfalsch was er mir erzählt.
Oh, mann das ist deprimierend :(
Aber besser ist wenn es mit jetzt einer sagt, als später meine Enkel auf dem Sterbebett ;)

Würde das im allgemeinen Sinn machen. So eine Funktion?
Kleingeschriebene Posts könnten so meistens vermieden werden.

@Gumbo:
Ja wäre so eine Funktion ansich sinnvoll?
 
tobee hat gesagt.:
@Dennis:
Da denkt man hat eine gute eine saubere Programmierung...

Vor allem wegen dem Typo:
PHP:
  $this->Lenth = strlen($string);
:p

Im Ernst:
Ich würde auf eine automatische Erkennung verzichten und dafür einen Button einfügen "User missachtet die deutsche Grammatik und/oder quält andere mit orthographischen Zumutungen" - oder so was ähnliches. Wann fünf andere User den Beitrag ebenfalls so bewerten wird der Beitrag gesperrt.
 
Zurück