Anzeigen ob in einer Funktion etwas geändert wurde oder nicht
Thomas
- php
Ich habe eine Funktion die unerlaubte Buchstaben aus meinem String entfernt.
function ueberpruefen ($var,$format)
{
if ($format=='name'){$neu=preg_replace ( '~[^a-z0-9/> ÜüÖöÄäß,.:_-]~i', '',$var );} // Name
return $neu;
}
Dieses klappt, aber ich würde noch gerne eine weitere Ausgabe mit einbinden:
Und zwar soll eine neue Variable ausgegeben werden in der steht ob der getestete String geändert wurde, oder nicht.
Also wenn nicht war dann soll
$ok = false
mit ausgegeben werden, wenn alles ok war, dann
$ok = true
Kann mir da jemand helfen?
Thomas
Om nah hoo pez nyeetz, Thomas!
Und zwar soll eine neue Variable ausgegeben werden in der steht ob der getestete String geändert wurde, oder nicht.
wenn du den ursprünglichen Text speicherst und ihn hinteher mit dem neuen vergleichst, kannst deine Funktion das gewünschte leisten.
Matthias
Hi,
Und zwar soll eine neue Variable ausgegeben werden in der steht ob der getestete String geändert wurde, oder nicht.
wenn du den ursprünglichen Text speicherst und ihn hinteher mit dem neuen vergleichst, kannst deine Funktion das gewünschte leisten.
Ganz so einfach ist es nicht, denn die Funktion kann ja nur einen einzigen Wert zurückgeben, ein
return name, changed;
geht nicht.
Man kann aber z.B. ein Array (oder eine andere Objektstruktur) zurückgeben, das den ggf. geänderten String und das Änderungsflag enthält.
Es müssen dann halt auch alle Aufrufstellen angepaßt werden ...
cu,
Andreas
High!
... oder man übergibt den String als Referenz, dann hat man den Rückgabewert frei...
... oder man gibt den geänderten String zurück, _wenn_ er geändert wurde, ansonsten einfach false... Wofür den String zurückgeben, wenn er der gleiche wie das Original ist?
Und es ist ja nicht so, dass PHP in diesem Sinne stur und unflexibel wäre ;-)
Gruß
Hi,
... oder man gibt den geänderten String zurück, _wenn_ er geändert wurde, ansonsten einfach false... Wofür den String zurückgeben, wenn er der gleiche wie das Original ist?
Das macht sich im Handling an der aufrufenden Stelle aber äußerst unschön.
MfG ChrisB
Hi,
function ueberpruefen ($var,$format)
{
if ($format=='name'){$neu=preg_replace ( '~[^a-z0-9/> ÜüÖöÄäß,.:_-]~i', '',$var );} // Name
Aus André wird damit Andr. Ist das wirklich gewünscht?
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
Hi!
Aus André wird damit Andr. Ist das wirklich gewünscht?
Zu klären wäre, ob es aus technischen oder aus sozialen Gründen eingeschränkt werden soll. Für soziale Zwecke ist solch eine Einschränkung in der Regel nicht besonders effektiv, weil sich immer irgendwas finden lässt, das durch das Muster passt aber trotzdem nicht erwünscht ist.
Lo!
Hi,
function ueberpruefen ($var,$format)
{
if ($format=='name'){$neu=preg_replace ( '~[^a-z0-9/> ÜüÖöÄäß,.:_-]~i', '',$var );} // Name
>
> Aus André wird damit Andr. Ist das wirklich gewünscht?
Jetzt einmal eine ganz dumme Frage.
André wird doch angenommen, da er doch nicht den ´ sondern den ' ausschließt, oder sehe ich das nicht und der Koffeein wirkt noch nicht?
Moin,
if ($format=='name'){$neu=preg\_replace ( '~[^a-z0-9/> ÜüÖöÄäß,.:\_-]~i', '',$var );} »» »» Aus André wird damit Andr. Ist das wirklich gewünscht?
Jetzt einmal eine ganz dumme Frage.
hmmm ...
André wird doch angenommen, da er doch nicht den ´ sondern den ' ausschließt
Thomas schließt alle Zeichen aus, die in der Zeichenklasse nicht aufgeführt sind. Also auch das é. Oder das â. Oder das ñ.
oder sehe ich das nicht und der Koffeein wirkt noch nicht?
Trink noch 'ne Tasse Kaffee, mach ich auch gerade. ;-)
Ciao,
Martin
Hi!
if ($format=='name'){$neu=preg\_replace ( '~[^a-z0-9/> ÜüÖöÄäß,.:\_-]~i', '',$var );} // Name
Aus André wird damit Andr. Ist das wirklich gewünscht?
André wird doch angenommen, da er doch nicht den ´ sondern den ' ausschließt, oder sehe ich das nicht und der Koffeein wirkt noch nicht?
é ist nicht ´ und e. Auch wenn du das auf deiner Tastatur mit zwei Tastendrucks eingibst, landet im Text nur ein Buchstabe. Nebenbei ist das ' ebensowenig wie das ´ im Suchmuster enthalten. Und selbst wenn du auf die kombinierenden diakritischen Zeichen abzielst: der mit der Tastatur eingegebene ´ ist das Zeichen U+00B4 und der kombinierende ist U+0301.
Lo!