1Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
285
285
EMPFEHLEN
-
Guten Tag liebe PHP Profis,
ich hab eine Text Datei (db.txt) in dem ein langer Text steht im Format:
Lorem Ipsum amet. [1:1] Lorem Ipsum Dolor sit amet [1:2] Lorem Ipsum Dolor sit amet [1:3] Lorem Ipsum Dolor sit amet [2:1] Lorem Ipsum Dolor sit amet [2:3]
usw...
In der Datenbank gibt es folgende Spalten:
ID, Text, Nr1, Nr2
Das PHP Script sollte beim durchlauf natürlich oben anfangen und folgendermaßen die Daten in die Datenbank schreiben:
Erster DB Eintrag:
Text: Lorem Ipsum amet
Nr1: 1
Nr2: 1
Zweiter DB Eintrag:
Text: Lorem Ipsum Dolor sit amet
Nr1: 1
Nr2: 2
usw....
Was ich herausgefunden habe ist, dass man mit PHP nach bestimmten Zeichen trennen kann mit z.B.: explode(';', text);
Zusätzlich müsste man vielleicht mit einer Schleife arbeiten.
Wie sage ich dem PHP Skript jetzt, dass er den text bis zur in Spalte "Text schreiben soll und nach "[" die erste Zahl in Spalte "Nr1" und nach dem ":" die zahl in spalte "Nr2"
Wäre euch dankbar, wenn ihr mit bei meinem Problem aushelfen könntet.
Liebe Grüße
refl3x
-
Hallo und Willkommen.
Ich würde hier lieber mit preg_split() arbeiten, da mitten im Text auch [ und ] vorkommen können. Das Suchmuster (Pattern) dieser Funktion erlaubt dir nach folgendem zu trennen:
Das Array $subpattern baut sich dann wie folgt auf:PHP-Code:<?PHP
//
// Text, der durchsucht werden soll
//
$subject = 'Lorem Ipsum amet. [1:1] Lorem Ipsum Dolor sit amet [1:2] Lorem Ipsum Dolor sit amet [1:3] Lorem Ipsum Dolor sit amet [2:1] Lorem Ipsum Dolor sit amet [2:3]';
//
// Der Reguläre Ausdruck
//
$pattern = '!([^\[\d:\d\]]*)\[(\d+):(\d+)\]!is';
//
// RegExp auswerten
//
$result = preg_match_all($pattern, $subject, $subpattern);
?>
Code :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
Array ( [0] => Array ( [0] => Lorem Ipsum amet. [1:1] [1] => Lorem Ipsum Dolor sit amet [1:2] [2] => Lorem Ipsum Dolor sit amet [1:3] [3] => Lorem Ipsum Dolor sit amet [2:1] [4] => Lorem Ipsum Dolor sit amet [2:3] ) [1] => Array ( [0] => Lorem Ipsum amet. [1] => Lorem Ipsum Dolor sit amet [2] => Lorem Ipsum Dolor sit amet [3] => Lorem Ipsum Dolor sit amet [4] => Lorem Ipsum Dolor sit amet ) [2] => Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 2 [4] => 2 ) [3] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 1 [4] => 3 ) )
Hier erkennst du deutlich, dass $subpattern[1][$x] der Text ist, $subpattern[2][$x] die erste Zahl und $subpattern[3][$x] die zweite Zahl. Das dürfte für deine Schleife reichen
Geändert von ZodiacXP (16.09.08 um 13:29 Uhr)
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
Wie finde ich heraus, wie viele verschiedene daten es in dem Array gibt?
$subpattern[1][x] // Wie viele verschiedene werte an der Stelle X gibt es?
Ich will ja die schleife nicht statisch durchlaufen lassen sondern dynamisch, je nachdem wie viele Werte es sind.
Code :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
<?PHP // // Text, der durchsucht werden soll // $subject = 'text eins [1:2] text zwei [3:4] text drei [5:6] Lorem Ipsum Dolor sit amet [2:1] Lorem Ipsum Dolor sit amet [2:3]'; // // Der Reguläre Ausdruck // $pattern = '!([^\[\d:\d\]]*)\[(\d+):(\d+)\]!is'; // // RegExp auswerten // $result = preg_match_all($pattern, $subject, $subpattern); $zaehler = 0; do { $text = $subpattern[1][$zaehler]; $zahl1 = $subpattern[2][$zaehler]; $zahl2 = $subpattern[3][$zaehler]; $sql = "INSERT INTO DB (text, zahl1, zahl2) VALUES ('$text', $zahl1, $zahl2)"; $zaehler++; } while($zaehler<x) ?>Geändert von refl3x (16.09.08 um 14:07 Uhr)
-
17.09.08 10:44 #4
- Registriert seit
- Aug 2005
- Beiträge
- 436
Das dürfte dir weiterhelfen, denke ichPHP-Code:count($subpattern[1])
Ähnliche Themen
-
Active Directory auslesen und in Datenbank speichern
Von atlantyz im Forum PHPAntworten: 1Letzter Beitrag: 13.05.10, 16:00 -
Byte[] in SQL Datenbank speichern und auslesen
Von awaiK im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 05.10.08, 14:48 -
Daten über IP auslesen und in Datenbank speichern
Von gbgphp im Forum PHPAntworten: 1Letzter Beitrag: 03.08.07, 20:28 -
JTable Zelle in Datenbank speichern und Auslesen?
Von Dadu2006 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 04.05.07, 09:10 -
Array in(ein Feld) Datenbank Speichern / Auslesen
Von ctac im Forum PHPAntworten: 3Letzter Beitrag: 10.12.02, 14:45





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren