WulfmanGER
Commander
- Registriert
- Juli 2005
- Beiträge
- 2.284
Hallo in die Runde,
ich nutze EMDB als Quelle für eine mySQL/PHP-Filmdatenbank. Ansich kann EMDB schon was gutes Exportieren - reicht nur leider nicht. Ich muss Personendaten aus der Datenbank rausziehen. Hier hab ich ein kleine Startproblem.
EMDB nutzt eine Text-Datenbank die man gut per Editor lesen kann (und ich mit php auslesen möchte)
Hier mal ein Beispiel:
das [RS] zeigt der Editor hier nicht an und ist von mir händisch im BEISPIEL eingetragen! RS ist ein "Record Seperator" - also eine "Feldtrennung"
Sieht auf den ersten Blick wie JSON aus - aber JSON fängt doch mit [ und geht mit {} weiter. Ist hier umgekehrt. Mit php und json_decode bekomme ich die nicht ausgelesen.
Wie lese ich sowas also aus? Kann man bei json_decode irgendwie die {[ vertauschen? (per Texteditor alle [ = { ersetzen geht nicht, da ich im Titel oder im Plot durchaus [] haben kann)
---------------
Das nächste Problem ist die frage wie ich mit dem [RS] umgehe. Ich muss explizit "year" und "cast" auslesen. Year ist noch relativ einfach - da der Aufbau, Länge immer gleich ist - mit explode sollte das gehen? Dann nur die richtigen Positionen auslesen und zu ende Verarbeiten.
Bei CAST hab ich aber ein Problem
0,1,2,3 sind die Schauspieler-IDs nach dem RS kommen dann deren ROLLEN (die Übersetzung SchauspielID = Schauspieler kommt am Ende der Datenbank - nicht schön gemacht .... aber machbar - nette Herausforderung). Hier muss natürlich Position 1 mit Position 1 der Schauspieler-IDs zusammengefügt werden. Mein Quick&Dirty-Ansatz: Ich arbeite mit MEHREREN Arrays
1) explode mit [RS] als Trennzeichen. Jetzt hab ich ein Array mit IDs (noch am Stück) und Rollen (am Stück)
2) im Array nehme ich den ersten Wert (also 0,1,2,3,4...) und splitte den auf - in ein neues Array
3) das gleiche mit dem zweiten Wert (also Rolle|Rolle|Rolle)
=> Jetzt hätte ich 2 Arrays die ich jetzt mixen müsste und zwar so das Pos1 und Pos1 zusammenkommen usw.
Klingt KOMPLIZIERT ... vorallem wenn ich das ca. 4500x machen muss ...
Geht das saubere? Performanter?
Die ganze Datenbank ist echt nicht schön gemacht und Performancemässig für die Tonne - aber leider die einzige wo ich saubere IMPORTIEREN, Verarbeiten und EXPORTIEREN kann ... Sehe das jetzt als Herausforderung
Danke schon mal für eure Ideen
ich nutze EMDB als Quelle für eine mySQL/PHP-Filmdatenbank. Ansich kann EMDB schon was gutes Exportieren - reicht nur leider nicht. Ich muss Personendaten aus der Datenbank rausziehen. Hier hab ich ein kleine Startproblem.
EMDB nutzt eine Text-Datenbank die man gut per Editor lesen kann (und ich mit php auslesen möchte)
Hier mal ein Beispiel:
das [RS] zeigt der Editor hier nicht an und ist von mir händisch im BEISPIEL eingetragen! RS ist ein "Record Seperator" - also eine "Feldtrennung"
Sieht auf den ersten Blick wie JSON aus - aber JSON fängt doch mit [ und geht mit {} weiter. Ist hier umgekehrt. Mit php und json_decode bekomme ich die nicht ausgelesen.
Code:
{
"version": "70",
"custom-genres": {},
"custom-languages": {},
"custom-services": {},
"custom-versions": {},
"collections": [],
"tags": [],
"movies": [{
"title": "1984[RS]#ONineteen Eighty-Four[RS]Senator Film[RS]-1",
"year": "1984[RS]0[RS]113[RS]#GB[RS]-10002[RS]0[RS]704x368[RS][RS]-2[RS]0[RS]1[RS]1[RS]0[RS]0[RS]2[RS]0,1[RS]0",
"genres": "DS[RS]0087803|0[RS]20220228[RS]16[RS]1@0@0[RS][RS]0[RS]www.imdb.com/video/vi2065472025?playlistId=tt0087803&ref[RS][RS][RS]",
"audio": "[RS][RS]1[RS]O0000G00B00",
"cast": "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14[RS]Winston Smith|O'Brien|Julia|Charrington|Parsons|Tillotson|Waiter|Mrs. Parsons|The Whore|Artsem Lecturer|Shouting Prole|Guard|Guard|Patrolman|Executioner|||||||||||||||||||",
"plot": "In einer totalitären Gesellschaft der Zukunft versucht ein Mann, dessen Aufgabe es ist, die Geschichte umzuschreiben, mithilfe der Liebe zu rebellieren.",
"tagline": "2+2=5[RS]",
"rating": "47[RS]00[RS]00[RS]00[RS]00[RS][RS][RS]70934[RS]0[RS]999067[RS]",
"custom-fields": "4425[RS]1984"
}, {
"title": "Zwei Himmelhunde auf dem Weg zur Hölle-1",
Wie lese ich sowas also aus? Kann man bei json_decode irgendwie die {[ vertauschen? (per Texteditor alle [ = { ersetzen geht nicht, da ich im Titel oder im Plot durchaus [] haben kann)
---------------
Das nächste Problem ist die frage wie ich mit dem [RS] umgehe. Ich muss explizit "year" und "cast" auslesen. Year ist noch relativ einfach - da der Aufbau, Länge immer gleich ist - mit explode sollte das gehen? Dann nur die richtigen Positionen auslesen und zu ende Verarbeiten.
Bei CAST hab ich aber ein Problem
0,1,2,3 sind die Schauspieler-IDs nach dem RS kommen dann deren ROLLEN (die Übersetzung SchauspielID = Schauspieler kommt am Ende der Datenbank - nicht schön gemacht .... aber machbar - nette Herausforderung). Hier muss natürlich Position 1 mit Position 1 der Schauspieler-IDs zusammengefügt werden. Mein Quick&Dirty-Ansatz: Ich arbeite mit MEHREREN Arrays
1) explode mit [RS] als Trennzeichen. Jetzt hab ich ein Array mit IDs (noch am Stück) und Rollen (am Stück)
2) im Array nehme ich den ersten Wert (also 0,1,2,3,4...) und splitte den auf - in ein neues Array
3) das gleiche mit dem zweiten Wert (also Rolle|Rolle|Rolle)
=> Jetzt hätte ich 2 Arrays die ich jetzt mixen müsste und zwar so das Pos1 und Pos1 zusammenkommen usw.
Klingt KOMPLIZIERT ... vorallem wenn ich das ca. 4500x machen muss ...
Geht das saubere? Performanter?
Die ganze Datenbank ist echt nicht schön gemacht und Performancemässig für die Tonne - aber leider die einzige wo ich saubere IMPORTIEREN, Verarbeiten und EXPORTIEREN kann ... Sehe das jetzt als Herausforderung
Danke schon mal für eure Ideen