Code Kürzen?

Malaxo

Erfahrenes Mitglied
Hab da einen Code kann ich den nicht kürzen?

PHP:
if(!ereg(":-)",$_POST['text'])){
  echo "<center><div class=\"text\"> Mindestens 1 Smilie benutzen<br>
        <a href=\"javascript:history.back(1)\">hier</a> zurück</center></div>";
  exit;
  }  if(!ereg(":-(",$_POST['text'])){
  echo "<center><div class=\"text\"> Mindestens 1 Smilie benutzen<br>
        <a href=\"javascript:history.back(1)\">hier</a> zurück</center></div>";
  exit;
  }  if(!ereg(":)",$_POST['text'])){
  echo "<center><div class=\"text\"> Mindestens 1 Smilie benutzen<br>
        <a href=\"javascript:history.back(1)\">hier</a> zurück</center></div>";
  exit;
  }  
if(!ereg(":(",$_POST['text'])){
  echo "<center><div class=\"text\"> Mindestens 1 Smilie benutzen<br>
        <a href=\"javascript:history.back(1)\">hier</a> zurück</center></div>";
  exit;
  }

etc. etc. es geht ja nur um die Smilies. Kann ich das mit OR verbinden oder || oder sonst was
 
Folgendes wäre möglich:
PHP:
if( !preg_match('/:-?\)|:-?\(/', $_POST['text']) ) {
	echo '<center><div class="text">Mindestens 1 Smilie benutzen<br>
        <a href="javascript:history.back(1)">hier</a> zurück</center></div>';
}
Ich frage mich allerdings, wieso Smileys Pflicht sein sollen.
 
Hm... ist das durch
PHP:
|
ein Oder? ich dachte das wären dann || nicht nur | ....
Kannst du mir das noch erklären?

-------------------------------
WISO SMILIES?
Smilies... na ja mein Gästebuch bekommt einträge jeden tag mindestens 1, vor kurzem angefangen.
Das eingeben von Sicherheitscode ist nervig für ein Gästebuch bei einer ABOUT ME Seite.
Das klicken auf ein Kreuz das sich immer wo anders befindet auch.

Und da die meisten Einträge bei mir die "normal" sind sowiso 1 Smilie enthalten läuft das auch ohne diese Meldung.

Die unerwünsten Einträge sind meistens in der art auf englisch aber: Hallo coole seite find ich echt super von dir danke.
oder
Super seite die kommt bei mir zu den Favoriten

Mehr nicht... (nicht nur auf meiner Seite so) IP kann ich nicht blocken immer eine andere e-mail genau so daher mal den Smilie trick fals es ein Bot ist wird er darauf reinfallen fals es ein Mensch ist (was ich nicht glaube da es auf vielen Seiten so ist und sicher zu viel aufwand wäre) wird es klappen.
Spam IP Blocker hab ich in meinem GB auch schon drin.
 
HINWEIS:

Das <center>-Tag steht auf der Abschußliste des W3-Konsortiums, das heißt, es soll in Zukunft aus dem HTML-Standard entfernt werden. Benutzen Sie stattdessen den Befehl <div align=center>, der das gleiche leistet.
 
Meine ganze Homepage ist NICHT W3 Standart. Sie wird schon erneuert, jedoch bis die erneuerung abgeschlossen ist kümmeret es micht nicht was W3 vor hat, so wie es alle Browser auch nicht so erst nehmen mit dem "Standart".

Brauche ehre eine erklärung zu diesem Code

PHP:
!preg_match('/:-?\)|:-?\(/'

ist das das selbe wie

PHP:
!preg_match(":-)|:-("
?

preg_match hab ich gegooglet ist mir nun klar aber wiso diese / ? etc. die sind mir neu. Dachte man nimmt bei PHP um ein Sonderzeichen zu zeigen nur den \ mehr nicht?
 
Mach dich über RegExp schlau, bspw. auf der PHP-Website. Die Schrägstriche sind sog. Delimiter, die am Anfang und Ende eines regulären Ausdrucks stehen.

Allerdings frage ich mich gerade, ob man den RegExp nicht noch (geringfügig) wie folgt verkürzen könnte: /:-?(\(|\))/. Aber das verwirrt dich jetzt bestimmt noch mehr, was? ;)
 
Hm... ne verstehe langsam:)

würde man es so kürzen:

PHP:
/:-?(\(|\))/

Würde doch aber ein Text der in Klammern steht wie

(hallo Leute) auch durch gehen in meinem Code oder etwa nicht?

Da wäre der Smily effekt wieder nicht gewährleistet. Oder?
 
SilentWarrior hat gesagt.:
Allerdings frage ich mich gerade, ob man den RegExp nicht noch (geringfügig) wie folgt verkürzen könnte: /:-?(\(|\))/. Aber das verwirrt dich jetzt bestimmt noch mehr, was? ;)
Es geht sogar noch kürzer:
Code:
/:-?[()]/

Zur Erklärung meines Vorschlags: die Perl kompatiblen Regulären Audrücke – vgl. die preg_*-Funktionen – benötigen so genannte Abgrenzer (engl. Delimiter). Dieser ist üblicherweise der Schrägstrich, kann bei PHP aber auch ein anderes beliebiges Zeichen sein. Der eigentliche Reguläre Ausdruck (:-?\)|:-?\() befindet sich also zwischen diesen Abgrenzern. Darin vorkommende Abgrenzer-Zeichen müssen allerdings durch vorangestellte umgekehrte Schrägstriche maskiert werden.
 
Zurück