Antworten auf deine Fragen:
Neues Thema erstellen

Namen aus einem Text heraus anklickbar machen?

ap1

Grafik/Web

Hi Leute!

Ich weiß dass das eine leichte Frage ist,... Mir gehts auch gar nicht ums wie sondern um wie am besten!

Was ich möchte ist folgendes!
In einer Nachricht kann man den Namen einer Person (mit welcher man befreundet ist) tippen!
Freunde: Hans Wurst, Medi Cus, Test Name
Beim immerwieder aufrufen wird die Nachricht (der Text) geparst und jedesmal wenn ein Name der Freunde geschrieben wird, soll dieser mit dem Link zum Profil versehen werden, zB.:

Hi Medi,

Weißt du dass Hans Wurst und Test Name zum Testen da sind?

Lg

wird zu

Hi Medi,

Weißt du dass Hans Wurst und Test Name zum Testen da sind?

Lg

Welche Möglichkeit (oder gar keine, dann vorschlag bitte) ist die Performance beste?

1) Alle Freunde aus der DB in einen Array laden, dann nach dem Muster $array[vorname]." ".$array[nachname] den String durchsuchen und ersetzten?

2) Jedes Leerzeichen aufspalten, und alle zwei Wörter zusammen nehmen und ersetzen?

Ich tippe auf 1) aber ich habe Performance bedenken - unbegründet?
vielen DAnk
 

Duddle

Posting-Frequenz: 14µHz

AW: Namen aus einem Text heraus anklickbar machen?

Hab es gerade mal aus Interesse gecodet und nem Mini-Test unterzogen.

Meine Vermutung war, dass die erste Variante wohl schneller sein würde, da für den Vergleich intern (wahrscheinlich) schnelle Textsuchalgorithmen verwendet werden. Das heisst, er würde potentiell sehr große Sprünge beim Suchen machen.

Die zweite Variante muss jedoch tatsächlich jedes Paar prüfen, das heisst mindestens $woerteranzahl-1 viele Vergleiche pro gesuchtem Namen machen. Das kann bei Texten mit 1000+ Wörtern schnell ausarten. Ausserdem kommt noch der Aufwand der Textvorbereitung und -nachbereitung (explode, implode), sowie der Speicherbedarf für diese Zwischenschritte hinzu - aber das ist wohl eher weniger ausschlaggebend.

Jedenfalls hab ich das mal beides naiv implementiert und als Ergebnis für einen Text der Länge 25k Wörter, Vergleich mit einem Namen, 100 Durchläufe:
  • Variante 1 braucht bei mir insgesamt 0,45 Sekunden (also 0,0045 pro Versuch)
  • Variante 2 braucht bei mir insgesamt 9,87 Sekunden (als0 0,0987 pro Versuch)

Ausserdem hat Variante 1 nur eine Zeile benötigt, Variante 2 dafür 12 (aber das ist ja alles relativ) - jedenfalls ist Variante 2 deutlich aufwändiger in der Implementierung.



Duddle
 

ChrisvA

Aktives Mitglied

AW: Namen aus einem Text heraus anklickbar machen?

Je nach dem wie viele Nutzer du hast, solltest du dein System so umschreiben, du nicht jedes mal nach Namen suchen musst, sondern deine Funde speicherst. Damit sparst du auf jeden Fall eine Menge Rechenzeit. (Falls du deinen Beitrag nicht verändern möchtest, speichere nur die gefundenen Namen mit den Beitrag, das spar auch schon viel)
 

saila

Moderatorle

AW: Namen aus einem Text heraus anklickbar machen?

Hi,

also sinnvoller wird es wohl sein, das vor dem speichern der Nachricht oder des Textes bereits der Text durch den Parser läuft und dann der geparste Text gespeichert wird. Ob das nun in Form von HTML oder mit entsprechenden Platzhaltern erfolgt ist relativ egal.

Das Verhältnis von lesendem Text zu erstellendem Text ist in der Regel zum Vorteil des lesenden Textes. Ergo verlagerst du "Last".
 
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

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben