mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.02.2007, 12:59   #1
TP-Junior
 
Registriert seit: Mar 2005
twilight macht alles soweit korrekt

[PHP] Worte vergleichen


Hallo liebe Traum-Projektler,

ich versuche grade einen vocabeltrainer in PHP zu programmieren. Das Problem ist, dass ich bei dem ablgeichen der Vocabeln ein bisschen hängen bleibe.

Also ich habe eine Variable, welche zu dem gesuchten Wort die übersetzte Form aus einer Datenbank ausliest. Z.b wird das Wort "court" gesucht. Aus der Datenbank würde er sich jetzt folgendes holen "(Gerichts-, Königs-)Hof, Gericht".

Zur Zeit wandel ich dieses in einen Array um und verwende als Trennungszeichen das ", ".Dann gleiche ich ab ob es in einem der Arrays eine übereinstimmung mit dem eingegeben Wort gibt. Dieses verfahren funktioniert nur so lange, bis ein Wort mit einer Klammer auftaucht.

Würde ich es weiterhin mit dem spliten versuchen, wären die Antwortmöglichkeiten nur "(Gerichts-", "Königs-)Hof" und "Gericht".
Eigentlich sollten aber die richtigen Antwortmöglichekiten
"Gerichtshof", "Königshof", "Hof" und "Gericht" sein. Evtl. sollte auch noch eine eingabe mit den Klammern für richtig identifiziert werden.

Überlegt hatte ich mir, die Klammern zu löschen und die "-" mit "hof" zu ersetzen. Dies funktioniert aber auch nicht so ganz, weil die Variable ja einen anderen Wert beinhalten kann, z.B. "(be-, zu-)decken, Decke(l), Deckung".


Habt ihr vielleicht eine Idee, wie ich dieses Problem lösen kann?

Ich hoffe ich habe es verständlich erklärt.
markus
twilight ist offline   Mit Zitat antworten


Alt 26.02.2007, 14:57   #2
TP-Senior
 
Registriert seit: Sep 2003
VoltFreeze ist auf einem guten Weg
hallo,

also das mit dem ersetzen halte ich schonmal für nen guten anfang.

du holst die übersetzung ja aus ner datenbank... und an deiner stelle würd ich einfach mit replace alle klammern in zum beispiel: XxX u. Xx2X (hauptsache irgendeine zeichenfolge, die sicherlich niemals reell vorkommt) replacen und bevor du die übersetzung dann als html "ausspucken" lässt, lässt alles wieder von XxX oder Xx2X nach ( oder ) replacen...

MfG VoltFreeze
__________________
Vertraue niemals einem PC, den du nicht aus dem Fenster schmeißen kannst.
VoltFreeze ist offline   Mit Zitat antworten
Alt 27.02.2007, 09:58   #3
TP-Junior
 
Registriert seit: Mar 2005
twilight macht alles soweit korrekt
danke für deine Antwort, doch leider versteh ich diese nicht ganz.

Was würde mir das bringen, wenn ich die Klammern in XxX und Xx2X replace? Dann könnte ich doch trozdem nicht die Worte in der Klammer mit dem Wort nach der Klammer verbinden, um so neue Schlüsselwörter zu erzeugen? Oder hab ich da jetzt was falsch verstanden?


gruß
markus
twilight ist offline   Mit Zitat antworten
Alt 27.02.2007, 10:03   #4
TP-Senior
 
Registriert seit: Jul 2006
Ort: Köln
Angelmaker ist auf einem guten Weg
PHP-Code:
// INIT
$var='(Gerichts-, Königs-)Hof, Gericht';

// Ist eine Klammer enthalten? Wenn ja, dann so, ansonten ausgabe der var
$banana_split=split('\(',$var);

if (
is_array($banana_split)) 
{
    
// Debug only
    // echo '<pre>'.print_r($banana_split).'</pre>';
    
    // Wieviele Wörter in der Klammer.
    
$klammer=split('\)',$banana_split[1]);
    
    
$klammerwörter=split(',',$klammer[0]);
    
    
// Debug only
    // echo '<pre>'.print_r($klammerwörter).'</pre>';
    
    
for ($i=0;$i<sizeof($klammerwörter);$i++)
    {
        
$wort[]=substr($klammerwörter[$i],0,stripos($banana_split[1],'-')-1);
        
// echo $wort[$i]; // Debug
    
}
    
    
// Nach der Klammer ist vor der nächstesn Klammer ^^
    
$blubb=split('\)',$var);
    
$nichtklammer=split(',',$blubb[1]);
    
    
// Erstes Wort ist natürlich [0]
    // echo '<pre>'.print_r($nichtklammer).'</pre>';
    
    
for ($i=0;$i<sizeof($nichtklammer);$i++)
    {
        if (
$i==0$anhang=$nichtklammer[$i];
        else
        
$weitere_vokabeln[]=$nichtklammer[$i];
    }
    
    for (
$i=0;$i<sizeof($wort);$i++)
    {
        
$vokabeln[]=$wort[$i].$anhang;
    }
    for (
$i=0;$i<sizeof($weitere_vokabeln);$i++)
    {
        
$vokabeln[]=$weitere_vokabeln[$i];
    }

             echo 
'<pre>';
    
print_r($vokabeln);
    echo 
'</pre>';

Code ist getestet mit Dienem beispiel und funzt. Sorg dafür, daß die Datenbank immer Deine Regeln einhält, und es geht gut .

Okay, bitte nicht lästern - ich bin nicht so der PHP Haxxor, es gibt bestimmt auhc optimierte PREGS und was weiss ich nicht noch alles, aber das Problem hat mich gereizt, deswegen hab ich es mir mal angeschaut. Langweilig ist mir mit SIcherheit nicht, aber naja, so sieht´s aus.

Falls Du es als Grundlage für Deine eigene Funktion verwenden kannst, umso besser, freu7t mich, wenns geholfen hat.

---Edit: Das war das letztemal, daß ich mir den Beitrag Nicht in ganzer Länge durchlese, bevor ich anfange loszuhacken. - für den Decke(l) mußt DU natürlich eine Ausnahme machen. Etwa in der Form, daß nur die erste Klammerseparierung betrachtet wird. Dann sollte es aber gehen, und z.B. Decke(l) so ausgegeben werden.
__________________
Ich habe keine Signatur. Dieser Satz kein Verb.

Geändert von Angelmaker (01.03.2007 um 14:29 Uhr).
Angelmaker ist offline   Mit Zitat antworten
Alt 27.02.2007, 10:26   #5
TP-Junior
 
Registriert seit: Mar 2005
twilight macht alles soweit korrekt
Vielen vielen dank für deine Mühen! Der Code ist echt Klasse, werde ihn mal erweitern, so das der Decke(l) auch passt vielen Danke noch einmal

marKus
twilight ist offline   Mit Zitat antworten
Alt 27.02.2007, 11:11   #6
TP-Senior
 
Registriert seit: Jul 2006
Ort: Köln
Angelmaker ist auf einem guten Weg
Gern geschehen.

edit: Mir fällt grad auf - für mehrere durchläufe mußt DU halt auch die Arrays, wie Wort[], etc. wieder resetten. Ach, im nachhinein fällt mir noch so viel auf...
__________________
Ich habe keine Signatur. Dieser Satz kein Verb.

Geändert von Angelmaker (28.02.2007 um 11:43 Uhr).
Angelmaker ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[PHP] Worte vergleichen [PHP] Worte vergleichen
« Aktuelle URL verwenden | PHPEclipse »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:42 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67