Ich habe eine JSON-Datei, die zwei Zeilen hat.
Die erste Zeile beginnt mit {„data“:[{ und endet mit „}}
Die zweite Zeile beginnt mit [{“ und endet mit }]
Ich möchte jetzt die erste Zeile mit ‚foreach ($feed[‚data‘] as $feeditem)‘ bearbeiten und am Ende der Zeile aufhören.
Geht das irgendwie?
Danke
Ja danke, kenne ich schon.
Klappt soweit auch mit dem einen Stream, allerdings nicht gepaart mit dem anderen zusammen in einer Datei.
Ich habe jetzt durch substr beide Streams formal in eine JSON-Ausgabe gepackt, bekomme aber keine passende Ausgabe.
Im Endeffekt geht es mir darum meinen Facebook-Feed und meine Twitter Status-Userline zu kombinieren (auch zeitlich passend gemischt).
Deswegen kann ich hier nicht alles an Daten posten.
Noch ein Tipp?
Ich würde die beiden Streams unabhängig voneinander in PHP-Arrays überführen und dann je nach Bedarf diese beiden PHP-Arrays zusammenfassen. Ich würde dazu versuchen, mit json_decode als Schnittstelle auszukommen und die JSON-Daten ansonsten nicht anzurühren.
Wieso schreibst du denn alles in eine Datei?
Um nicht bei jedem Zugriff die Daten neu von Facebook und Twitter abfragen zu müssen sondern über einen Zeitstempel gesteuert direkt aus der Datei zu lesen (Cache).
Dann mach doch zwei Dateien oder cache das fertige PHP-Array (serialize, unserialize).
Und wie bringe ich die beiden dann wieder zusammen inkl. Zeitstempelvermischung?
Dazu müsste ich die Struktur der beide Arrays kennen. Aber von der Idee her zum Beispiel:
[php]$twitter = json_decode(file_get_contents(‚./twitter.cache‘));
$facebook = json_decode(file_get_contents(‚./facebook.cache‘));
$combined = array();
foreach ($twitter as $entry) {
$combined = array(‚timestamp‘ => $entry[‚time‘], ‚data‘ => $entry[‚content‘);
}
foreach ($facebook as $entry) {
$combined = array(‚timestamp‘ => $entry[‚timestamp‘], ‚data‘ => $entry[‚whatever‘);
}[/php]
Dann hättest du die Feldindizes/Inhalte verallgemeinert.
Okay, von Facebook kann ich direkt einen Feed mit Unix timestamp bekommen ( http://graph.facebook.com/platform/feed?date_format=U ), von Twitter allerdings nicht (Playing with twitter JSON using PHP « Tareq’s Planet → [created_at] => Sun May 03 20:56:00 +0000 2009). Wie kann ich daraus auch einen Unix timestamp erstellen, der dann einfach mit dem von Facebook zu vergleichen ist?
Danke.
strtotime scheint zu reichen, um das Format zu konvertieren. Bin aber nicht völlig sicher.
Habe nicht herausfinden können, was das genau für ein Format ist.