Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

PHP custom site search programmieren

65 Beiträge ▪ Schlüsselwörter: PHP, Preg_replace, Search ▪ Abonnieren: Feed E-Mail
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 15:44
Jetzt habe ich folgendes Problem:

Ich möchte zb die Wort ANDI und ADAM in einem string durch einen einen anderen string ersetzen, in dem ANDI und ADAM beide wieder vorkommen. Bein ersten durchlauf wird ANDI durch BRUDER_VON_ADAM ersetzt. Im zweiten Durchlauf soll das ursprüngliche ADAM durch BRUDER_VON_ANDI ersetzt werden. Der zweite durchlauf findet aber das ADAM in dem Ersatzstring BRUDER_VON_ADAM und macht daraus BRUDER_VON_BRUDER_VON_ADAM. Das ist nicht gut. Gibt es da eine Lösung?

Anzeige
melden

PHP custom site search programmieren

04.08.2012 um 16:45
zwei wege:

einfach: ersetze nicht ADAM sondern " ADAM " (leerzeichen beachten)
schwer: reguläre ausdrücke. viel spass damit ;)


melden

PHP custom site search programmieren

04.08.2012 um 16:49
@AnGSt
oder noch anders: ersetze die texte erst durch platzhalter, etwa adam = #1 und andi = #2.
dann die platzhalter richtig ersetzen. ist sauberer als die angesprochene erste methode.


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 16:50
@alliswrong

Sowas glaube habe ich versucht, es führte zum selben Problem. Oder?


melden

PHP custom site search programmieren

04.08.2012 um 16:55
@AnGSt
dann hast du es falsch gemacht.

1) ersetze adam mit dem platzhalter #1
2) ersetze andi mit dem platzhalter #2
3) ersetze platzhalter #1 mit andi
4) ersetze platzhalter #2 mit adam

aus die maus


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:16
Probleme wenn der Platzhalter im Quellstring schon vor kommt.


melden

PHP custom site search programmieren

04.08.2012 um 17:22
deshalb sollte der platzhalter aussergewöhnlich sein. etwa {#%^1^%#} usw


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:23
@alliswrong

Das ist ein Hack.


melden

PHP custom site search programmieren

04.08.2012 um 17:27
was meinst denn damit?
@AnGSt


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:30
@alliswrong

Hacks sind unschöne Workarounds die potentielle Fehler in Kauf nehmen.


melden

PHP custom site search programmieren

04.08.2012 um 17:32
ja das weiss ich, aber wieso soll das nen hack sein?
ist dein platzhalter gut gewählt, kann nichts passieren. ein simples ersetzen stellt zudem keine sicherheitslücke dar.
@AnGSt


melden

PHP custom site search programmieren

04.08.2012 um 17:33
aber falls es dir nicht so gefällt, arbeite dich in reguläre ausdrücke ein. dann hast du keinen "hack" aber dafür ne menge spass :p


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:33
lol


melden

PHP custom site search programmieren

04.08.2012 um 17:34
jetzt mal im ernst. nimm die platzhalter version. in welchem text erscheinen zeichenfolgen wie [{#%^*++*^%#}]
?

edit
es müssen ja dann auch immer diese zeichen sein! eine minimale abweichung und das ersetzen geht nicht.
da es sowieso nur temporär ersetzt wird, kannst du den platzhalter auch huderttausend zeichen lang machen, wenn du das willst ;)
oder du jachst einen zufallsgenerator der die zeichenfolgen jedesmal neu berechnet. lol


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:42
Ich versuche mal meine Aufgabe genau zu formulieren. Vielleicht hilft das.

Ich mache eine Ausgabe eines Textes und die Begriffe "Sephiroth" und "Hitomi" sollen mit einem a Tag zwecks Verlinkung umschlossen werden. Zusätzlich soll der erzeugte Link als Parameter wiederum die Begriffe "Sephiroth" und "Hitomi" in der Form enthalten: &query=sephiroth+hitomi ... so ist das.


melden

PHP custom site search programmieren

04.08.2012 um 17:44
und was ist daran so schwer?
die begriffe sind vorher bekannt, also kann der link vorher schon zusammengebaut werden. das einzige was du machen musst ist ein replace. replace alle texte mit den a href tag inkl text und link. fertig.


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:46
@alliswrong

Genau das geht nicht, weil erst der erste Begriff ersetzt wird und dann der Zweite. Dabei taucht dann der zweite Begriff aber im eben eingefügten Link wieder auf.


melden

PHP custom site search programmieren

04.08.2012 um 17:47
muss leider weg. sorry.
aber der weg mit den platzhaltern wird zu 100% funktionieren!


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

04.08.2012 um 17:47
cu bye und trotzdem danke ^^


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

PHP custom site search programmieren

05.08.2012 um 12:25
Aha, ok, ich habs jetzt über den dummy Platzhalter gemacht. Das Wort 'ASDF' in großen Buchstaben kommt auf meiner Website nicht vor. ASDF ist besser als ein kryptisches Wort, das man optisch mit einem Pattern verwechseln kann...

Ich habe Sprungmöglichkeiten zu jedem gefundenen Begriff von der Ergebnisseite zur Zielseite sowie Highlighting auf der Zielseite eingebaut. Außerdem Vorschläge zur Suche nach ähnlichen Worten (über einen separat einmal erstellten Wortindex den man gelegentlich neu erstellen lassen muss).


Anzeige

melden