Connect failed: Connection timed out

[GastForen Programmierung/Entwicklung PHP und MySQL Zu lange Zeichenketten abschneiden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Zu lange Zeichenketten abschneiden

webgrauen
Beiträge gesamt: 20

12. Jul 2002, 07:01
Beitrag # 1 von 6
Bewertung:
(1923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich suche nach einer Möglichkeit die nach der Eingabe von zu langen aaaaaaaa - zzzzzzzzzzz und 0000000 - 999999999999999 Ketten die in ein Formular eingegeben wurden abzuschneiden.

Hat Jemand eine bessere Möglichkeit als diese ?

$HTTP_POST_VARS[message]= preg_replace("/a{5,}/","cut","$HTTP_POST_VARS[message]");
$HTTP_POST_VARS[message]= preg_replace("/b{5,}/","cut","$HTTP_POST_VARS[message]");
$HTTP_POST_VARS[message]= preg_replace("/c{5,}/","cut","$HTTP_POST_VARS[message]");
$HTTP_POST_VARS[message]= preg_replace("/d{5,}/","cut","$HTTP_POST_VARS[message]");
$HTTP_POST_VARS[message]= preg_replace("/e{5,}/","cut","$HTTP_POST_VARS[message]");

Mit eregi replace gehts aber mit preg replace siehts düster aus.


X

Zu lange Zeichenketten abschneiden

webgrauen
Beiträge gesamt: 20

12. Jul 2002, 09:20
Beitrag # 2 von 6
Beitrag ID: #7094
Bewertung:
(1923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
1. Möglichkeit habe ich schon gefunden, klappt aber leider nur mit Grossbuchstaben.

Ich schaffe es einfach nicht Gross und Kleinbuchstaben zusammen in diesen Ausdruck zu bekommen.


$HTTP_POST_VARS[message]= preg_replace("/([A-Z]){5,}/","\t","$HTTP_POST_VARS[message]");




als Antwort auf: [#7080]

Zu lange Zeichenketten abschneiden

oesi50
  
Beiträge gesamt: 2315

12. Jul 2002, 10:30
Beitrag # 3 von 6
Beitrag ID: #7100
Bewertung:
(1923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi webgrauen,

schau mal hier:

http://www.php.net/manual/de/function.substr.php

ich glaube dieses ist für deinen Fall günstiger und dazu auch noch schneller und gilt für alle Zeichen, nicht nur für [A-Z].
Solltest Du dennoch reguläre Ausdrücke verwenden wollen, sieht das so aus: /[A-Z]|[a-z]|[0-9]/ der '|' entspricht in dem Fall 'oder'.

mfg oesi
_________________
A bis z groß und klein
0 bis 9 und underline
Beste Darstellung mit
IE9.3 SP5a

[ Diese Nachricht wurde geändert von: oesi50 am 2002-07-12 10:31 ]


als Antwort auf: [#7080]

Zu lange Zeichenketten abschneiden

webgrauen
Beiträge gesamt: 20

12. Jul 2002, 13:50
Beitrag # 4 von 6
Beitrag ID: #7112
Bewertung:
(1923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe das hier gerade mit Grossbuchstaben getestet,
geht perfekt.

Es sieht ganz so aus als wäre in der neuen PHP Version ein Bug drin(4.2.1)

$HTTP_POST_VARS[message]= preg_replace("/([A-Z]{5,})/","\t","$HTTP_POST_VARS[message]");

Das klappt nämlich wirklich nicht mit Kleinbuchstaben.

Trotzdem danke Ösi.





als Antwort auf: [#7080]

Zu lange Zeichenketten abschneiden

Anonym
Beiträge gesamt: 22827

12. Jul 2002, 14:36
Beitrag # 5 von 6
Beitrag ID: #7119
Bewertung:
(1923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich meinte das so hier:
Code:

$HTTP_POST_VARS[message]= substr($HTTP_POST_VARS[message],0,5);




als Antwort auf: [#7080]

Zu lange Zeichenketten abschneiden

Miro Dietiker
Beiträge gesamt: 699

12. Jul 2002, 22:47
Beitrag # 6 von 6
Beitrag ID: #7143
Bewertung:
(1923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen...

Schnell einige klärende Worte:

Die Funktionen ereg_... und preg_... unterscheiden sich in
der Syntax des erwarteten Regulären Ausdruckes massiv!
Ich empfehle dem Programmierer für "standardfälle" klar die
preg (Voll Perl-Kompatible) Funktionen zu verwenden. Sie
sind meist auch in der Ausführung massiv schneller...

Das Problem Gross-Klein usw. Ist grundsätzlicher Natur:
Standardmässig unterscheidet preg Gross und Kleinschreibung.
Die Definition der Charakter-Klasse [A-Z] umfasst demnach
ausschliesslich Grossbuchstaben. Man verwende anstelle
[A-Za-z] (Sollte klappen..).

Im PHP-Manual findet man die Doku (für preg-Syntax) übrigends unter dem Schlagwort "Pattern Syntax" weiss man das nicht, wird man ewig suchen und kaum fündig.

Die elegantere lösung jedoch ist die verwendung der "Pattern Modifiers" (auch unter diesem Stichwort)
Man kamm damit definieren, dass der Reguläre ausdruck
CASE-Sensitive oder InSensitive ist. Modifiers werden
am Ende des Regulären ausdruckes gesetzt, NACH dem
abschliessenden Pattern-Zeichens. der Modifier "i" wird
Eure Beispiele oben auch für Gross/Klein funktionstüchtig machen.

Der Reguläre Ausdruck: "/([A-Z]){5,}/"
(Eigentlich heisst der Ausdruck selbst nur:
"([A-Z]){5,}" und die "/" Zu beginn und ende sind
Ein/Ausleitende Sequenzen, kann nun für die CASE-
Insensitivität so geschrieben werden:
"/([A-Z]){5,}/i"

Viel Spass dabei

Miro Dietiker


als Antwort auf: [#7080]
X