Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Bestimmte Zeichenfolge verhindern

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
osgee
PostRank 1
PostRank 1
Beiträge: 18
Registriert: 12.06.2011, 17:39

Beitrag von osgee » 13.06.2011, 10:38

Hallo,

Habe eine Frage und da ich in PHP noch nicht so sehr geübt bin, hoffe ich, dass ihr mir helfen könnt.

Und zwar möchte ich Strings bearbeiten und Zeichen ersetzen (soweit ist das nicht das Problem). Allerdings möchte ich mit einer globalen Funktion die Strings so bearbeiten, dass in jedem String nie ein Bindestrich auf einen anderen Bindestrich folgen darf .. dabei kann man allerdings nicht sagen, wieviele Bindestriche hintereinander auftreten können, deshalb sollte das ganze global gemacht werden ...

Ein Beispiel:
String 1: "hallo--wie gehts" sollte zu "hallo-wie gehts" werden
String 2: "hallo-----wiegehts--gut-" sollte zu "hallo-wiegehts-gut-" werden

usw.

wie kann ich das am besten realisieren?

vielen dank schonmal!

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 13.06.2011, 10:50

$string = preg_replace("/-+/", '', $string);

Sollte funktionieren.

Gruß
Daniel

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 13.06.2011, 10:55

Das ist ein Thema, das man bei vielen Bereichen nutzt, mit vielen Zeichen und Konstellationen. So etwas habe ich auch, aber da es eben über viele Wege geht und sich nicht alles kombinieren lässt, habe ich einiges einfach separat. Hier mal das mit dem "---".

Code: Alles auswählen

$value = preg_replace('/-+/', '-', $value);
Mist, zu langsam...

@calusa
Bei Dir werden dann aber alle '---' ersetzt, da bleibt dann keines mehr übrig, oder ist meine nun falsch?

LinkPop
PostRank 9
PostRank 9
Beiträge: 1677
Registriert: 02.05.2004, 13:52

Beitrag von LinkPop » 13.06.2011, 10:58

while (stristr($string,"--")) {$string = str_replace("--","-",$string);}

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 13.06.2011, 11:05

Habe es eben noch einmal gestest...

So ist es richtig:

Code: Alles auswählen

$string = preg_replace("/-+/", '-', $string);

Gruß
Daniel

osgee
PostRank 1
PostRank 1
Beiträge: 18
Registriert: 12.06.2011, 17:39

Beitrag von osgee » 13.06.2011, 12:01

calusa-xx hat geschrieben:Habe es eben noch einmal gestest...

So ist es richtig:

Code: Alles auswählen

$string = preg_replace("/-+/", '-', $string);

Gruß
Daniel
Ja, scheint wunderbar zu funktionieren. Danke :)

UweKeim
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 12.08.2010, 08:08
Wohnort: Göppingen

Beitrag von UweKeim » 19.06.2011, 10:26

Normalerweise mache ich so was durch Textersetzung.

Code: Alles auswählen

$string = str_replace("--","-",$string);
$string = str_replace("--","-",$string);
Insgesamt 2 mal aufrufen, damit alles ersetzt wird. Sollte normalerweise immer schneller als ein Regulärer Ausdruck sein.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 19.06.2011, 10:31

Hm.... Und was wird dann aus:

"hallo---------wiegehts--gut-"

Mal sehen.

Erster Durchlauf...

Müsste "hallo-----wiegehts-gut-" werden

Zweiter Durchlauf

Müsste "hallo---wiegehts-gut-" werden...

Und dann?

devolo01
PostRank 8
PostRank 8
Beiträge: 843
Registriert: 13.12.2008, 17:57

Beitrag von devolo01 » 19.06.2011, 10:45

In diesem Speziellen Fall ist preg_replace(), wirklich die einzig anzuwenden Funktion wenn du selber keine eigene Funktion schreiben möchtest.

https://de.php.net/manual/de/function.preg-replace.php

alles andere wäre auch quatsch.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag