Veröffentlicht 22. September 200321 j <tr> <td class=navheader width=150px>Vorname:</td><td>Andreas</td> </tr> <tr> <td class=navheader width=150px>Geburtsdatum:</td><td>08.08.08</td> </tr> <tr> <td class=navheader width=150px>Beruf:</td><td>Fachinformatiker</td> </tr> [/PHP] ich möchte diesen string so ersetzen damit er wie folgt aussieht [PHP] <tr> <td class=navheader width=150px>Vorname:</td><td><input type="text" value="Andreas"></td> </tr> <tr> <td class=navheader width=150px>Geburtsdatum:</td><td><input type="text" value="08.08.08"></td> </tr> <tr> <td class=navheader width=150px>Beruf:</td><td><input type="text" value="Fachinformatiker"></td> </tr> ich weiss nicht wie ich das anstellen soll damit das dann automatisiert durchläuft.... also das sind nicht nur diese 3 felder. ist nur ein ausschnitt. könnt ihr mir nen denkanstoß bzw ne lösung geben?! Gruß kills
22. September 200321 j Also wenn die Struktur immer so ist, kannst du das so realisieren. <table> <? $text="<tr> <td class=navheader width=150px>Vorname:</td><td>Andreas</td> </tr> <tr> <td class=navheader width=150px>Geburtsdatum:</td><td>08.08.08</td> </tr> <tr> <td class=navheader width=150px>Beruf:</td><td>Fachinformatiker</td> </tr>"; $pattern="#(^|\s{1})<td class=navheader width=150px\>([^\s<>]+)</td><td>([^\s<>]+)</td>\r\n#sm"; $replacement="\\1<td class\=navheader width=150px\>\\2</td><td><input type=\"text\" value=\"\\3\"></td>\r\n"; $text=preg_replace($pattern,$replacement,$text); echo $text; ?> </table> Und übrigens Danke für die Übungsaufgabe. Langsam fange ich an zu begreifen, wie man so nen Pattern aufbaut. Fehlt nur die Übung.
22. September 200321 j ich werds ma versuche danke Original geschrieben von jomama Und übrigens Danke für die Übungsaufgabe. Langsam fange ich an zu begreifen, wie man so nen Pattern aufbaut. Fehlt nur die Übung. immer wieder gerne
22. September 200321 j nun möchte ich auch noch in einer textdatei die z.b. 5. Zeile auslesen. wie das? idee?
22. September 200321 j Hi, entweder mit der Funktion file() und dann aufs Array zugreifen. http://de2.php.net/manual/de/print/function.file.php oder bei großen Dateien die Daten zeilenweise einlesen und die gewünschte Zeile "herauspicken". Gruß Jaraz
22. September 200321 j danke nochmal euch beiden. ich hab jetzt mein Formular erweitert aber nun funktioniert die preg_replace nicht mehr überall. könnte es mir jemand so anpassen damits wieder funktioniert. ich blick da aktuell noch nicht so durch. <table bgcolor=#ffffff width=100% height=100%> <tr> <td class=navheader width=150px>Nachname:</td><td>Staab</td><td rowspan='9' align='right'><img src='./seiten/02Mannschaften/011. Mannschaft/01Kader/01Tor Staab Andreas/bild.jpg' alt=' Andreas Staab'></td> </tr> <tr> <td class=navheader width=150px>Vorname:</td><td>Andreas</td> </tr> <tr> <td class=navheader width=150px>Geburtsdatum:</td><td>08.08.08</td> </tr> <tr> <td class=navheader width=150px>Beruf:</td><td>Fachinformatiker</td> </tr> <tr> <td class=navheader width=150px>Familienstand:</td><td>Ledit</td> </tr> <tr> <td class=navheader width=150px>Position:</td><td>Tor</td> </tr> <tr> <td class=navheader width=150px>Im Verein seit:</td><td>09.09.09</td> </tr> <tr> <td class=navheader width=150px>Größter sportlicher Erfolg:</td><td>Gewunne</td> </tr> <tr> <td class=navheader width=150px>Sportliches Vorbild:</td><td>Markus Staab </td> </tr> </table> [/code] [PHP] // aktueller Code: $pattern="#(^|\s{1})<td class=navheader width=150px\>([^\s<>]+)</td><td>([^\s<>]+)</td>\r\n#sm"; $replacement="\\1<td class\=navheader width=150px\>\\2</td><td><input type=\"text\" value=\"\\3\"></td>\r\n"; $text=preg_replace($pattern,$replacement,$text); [/PHP]
22. September 200321 j // aktueller Code: $pattern="#(^|\s{1})<td class=navheader width=150px\>([^[b]\s[/b]<>]+)</td><td>([^\s<>]+)</td>\r\n#sm"; $replacement="\\1<td class\=navheader width=150px\>\\2</td><td><input type=\"text\" value=\"\\3\"></td>\r\n"; $text=preg_replace($pattern,$replacement,$text); Ich denke, es müsste reichen, wenn du das markierte rauslöschst. \s kennzeichnet einen "Whitespace". Ich denke, es liegt an den Leerzeichen. Probiers mal aus und sag, obs funktioniert hat. Hab den Pattern übrigens mit den Angaben von www.dclp-faq.de erstellt. Kannst du dir ja mal anschauen, ist äusserst nützlich.
22. September 200321 j nochmals vielen danke für die antwort. es geht jetzt bei mehr feldern als zuvor aber immer noch nicht bei allen. beim feld "Nachname" und "Sportliches Vorbild" gehts noch nicht. Gruß kills
23. September 200321 j Hmm, beim einen stimmt die Struktur nicht mit den anderen überein. Das kann nicht funktionieren. Beim anderen stört die Klammer beim Smilie, denk ich. Ich probier mal was aus.
23. September 200321 j ich habs ma so umgebaut. leider hat ich jetzt ein paar fehlerchen drinne $sPattern = "(^|[\s]{1,1})<td class=navheader(.*)>([^<>]+)</td><td>([^<>]+)</td>"; $sReplacement = "\\1<td class=navheader \\2>\\3</td><td><input type=\"text\" value=\"\\4\" name=\"playerdatafields[\"\\4\"]\"></td>"; [/PHP] PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 196 PHP Warning: Unknown modifier '<' in C:\wwwroot\~dpd\cgi-bin\sve\functions.php on line 202
23. September 200321 j //Replacement $pattern="#(^|\s{1})<td class=navheader width=150px\>([^<>]+)</td><td>([^<>]+)</td>#sm"; $replacement="\\1<td class\=navheader width=150px\>\\2</td><td><input type=\"text\" value=\"\\3\"></td>\r\n"; $text=preg_replace($pattern,$replacement,$text); So Passts. In der ersten Klammer stand noch ein \s, heisst, er hat nach Leerzeichen geprüft, deshalb wurden die unteren beiden angezeigt. Ausserdem bin ich zuerst davon ausgegangen, das alle Zeilen ein \r\n am Ende haben, weil eine neue Zeile anfängt, da das aber beim ersten nicht der Fall ist, musst ichs rauslöschen, und siehe da, es funzt. :uli
23. September 200321 j (.*) Das hier aus deinem Code heisst übrigens beliebige Anzahl Zeichen, darum bricht er bei < nicht ab, sondern liesst bis zum Ende der Zeile. Sowas musst du mit ([^<>]) machen. [] umschliest eine Zeichenmenge, ^ verneint die Zeichenmenge, d.h. er sucht alle Zeichen ausser < und >. Wenn du direkt nach Sonderzeichen wie einer Klammer suchst, musst du die mit Backslash kennzeichnen Viel Spaß noch beim Basteln.
23. September 200321 j hi danke nochmal für deine hilfe. ich habs übrigens selbst mittlerweile auch schon hinbekommen $sPattern = "/<td class=navheader(.*)>([^<>]+):<\/td><td>([^<>]+)<\/td>/"; $sReplacement = "<td class=navheader $1>$2</td><td><input type=\"text\" value=\"$3\" name=\"playerdatafields[\"$2\"]\"></td>"; $sRow = preg_replace( $sPattern, $sReplacement, $sRow); [/PHP] btw: das mit den reg expr. rock voll macht voll bock :cool: PS: hab mir eben auf die schnellen nen reg expr. editor gebastelt. wenn du interesse hast kannste ihn auch haben (php)
23. September 200321 j Als ausgebildeter Fachinformatiker kann ich natürlich jedes Tool brauchen. Du kannst den Code hier posten oder an holladrio@alpenjodel.de schicken. THX!
23. September 200321 j Original geschrieben von jomama Als ausgebildeter Fachinformatiker kann ich natürlich jedes Tool brauchen. Du kannst den Code hier posten oder an holladrio@alpenjodel.de schicken. THX! is schon raus Als auszubildenter FiSi bin ich auch auf alles stolz was ich programmiert hab
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.