Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Bestimmte Wörter auslesen und durch den User ersetzen lassen“

r3nt5ch3r

~ Allround pG ~

Nabend, na alle gut im neuen Jahr? - Ich schon :lol:

Trotzdem muss ich mal kleine Fragen stellen :D

Frage 1:

Also man nehme an es gibt ein text, der aus 3 Wörtern besteht:
Wort1 Wort2 Wort3

Wort1 und 3 sind mir bekannt, doch Wort2 nicht. Wie bekomm ich denn Wort2 mit php ausgelesen? Mit preg_match vielleicht? (bitte code für oberes beispiel posten und davon ausgehen das vor wort1 und nach wort3 noch mehr steht)

Frage 2:

Das Wort2 das ich dann in einer Variable habe soll nachträglich vom User editiert werden können. d.h. anstelle des wort2 soll eine variable stehen die als platzhalter dienen soll, sodass ein User über ein Formular das Wort entweder leer lassen oder selbst editieren kann.

Ich hoffe jemand kann mir helfen :wink:
 

CIX88

Aktives Mitglied

Ich dachte das gesuchte soll ersetzt werden, also nichts mit Backreferenz ...
Und Leerzeichen können auch noch enthalten sein.
Wort2 kann auch unbekannt sein.

preg_replace('~wort1\s*(.*?)\s*wort3~i', 'neues_wort', $string);
 

CIX88

Aktives Mitglied

Hmm, wieso machst du den Quanifier denn ungreedy?
Gute Frage :)
Kann ja sein, dass das gesuchte 2mal im Text vorkommt.
Was dann ?
Also -> .*? :)

Naja, wenn er erst das Wort auslesen will, dann natürlich preg_match().
Soll dann das gesuchte ersetzt werden reicht auch ein str_replace().
Aber ........ kommt auf den Textaufbau drauf an, welchen ich aber nicht kenne, und deshalb nur Vermute.
 

r3nt5ch3r

~ Allround pG ~

Damit wäre das ersetzen wohl geklärt. Wobei ich mich noch frage wie ich jetzt ein wort auslese, das ich dann in einer variable habe (im text soll das wort noch vorhanden bleiben)
 

blackout

Schaf im Wolfspelz

CIX88 schrieb:
Kann ja sein, dass das gesuchte 2mal im Text vorkommt.
Was dann ?
Also -> .*?
Stimmt. Kann aber auch sein, dass wort3 in wort2 vorkommt. ;)

Auslesen tust du es einfach so:
$wort2 = preg_replace('@wort1(.*)wort3@', '\\1', $alle_woerter_zusammen);
Sollte wort3 potentiell in wort2 vorkommen, benutz die obige Alternative; sollte die Wortabfolge mehrfach im Text vorkommen könne, setz einfach hinter das letzte @ ein U oder hinter den * ein ?
Sollte beides der Fall sein wirds hässlich. ;)
 

r3nt5ch3r

~ Allround pG ~

mit 3 wörtern klappt es, aber wie oben beschrieben ist davor und dahinter noch text, wodurch das ganze net so ging wie ich das wollte.

?: ja manche wörter kommen öfters vor jedoch nicht ineinander.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.155
Beiträge
2.581.854
Mitglieder
67.221
Neuestes Mitglied
opaklaus
Oben