ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
1341
1341
EMPFEHLEN
-
Hallo zusammen,
ich möchte eine Twitter-Abfrage starten und das Ergebnis (ATOM-Feed) in eine mySQL-DB schreiben, jedoch klappt es nicht. Das hier ist mein Code:
Und hier ist ein Ausschnitt aus der einzulesenen XML-Datei:PHP-Code:<?php
// Verbindung aufbauen, auswählen einer Datenbank
$link = mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("atomtest") or die("Auswahl der Datenbank fehlgeschlagen");
// Verbindung aufbauen zu ATOM-Feed
$feed = simplexml_load_file('http://search.twitter.com/search.atom?q=twitter');
$children = $feed->children('http://base.google.com/ns/1.0');
$entries = $children->entry;
foreach ($entries as $entry) {
$details = $entry->children(http://base.google.com/ns/1.0');
echo $details->title ;
// Ausführen einer SQL-Anfrage
$query = "INSERT INTO atomfeed (id, published, title,
content, updated, author) VALUES ('$details->id', '$details->published',
$details->title', '$details->content','$details->updated','$details->author->name')";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
}
// Schließen der Verbinung
mysql_close($link);
?>
Das Problem ist, dass sich das Programm zwar zur DB verbindet, aber dann war es das... Parse Error line 19:<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns:google="http://base.google.com/ns/1.0" xml:lang="en-US" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.w3.org/2005/Atom" xmlns:twitter="http://api.twitter.com/">
<id>tag:search.twitter.com,2005:search/twitter</id>
<link type="text/html" rel="alternate" href="http://search.twitter.com/search?q=twitter"/>
<link type="application/atom+xml" rel="self" href="http://search.twitter.com/search.atom?q=twitter"/>
<title>twitter - Twitter Search</title>
<link type="application/opensearchdescription+xml" rel="search" href="http://search.twitter.com/opensearch.xml"/>
<link type="application/atom+xml" rel="refresh" href="http://search.twitter.com/search.atom?q=twitter&since_id=1172659661"/>
<updated>2009-02-03T11:43:44Z</updated>
<openSearch:itemsPerPage>15</openSearch:itemsPerPage>
<link type="application/atom+xml" rel="next" href="http://search.twitter.com/search.atom?max_id=1172659661&page=2&q=twitter"/>
<entry>
<id>tag:search.twitter.com,2005:1172659661</id>
<published>2009-02-03T11:43:44Z</published>
<link type="text/html" rel="alternate" href="http://twitter.com/x_bacon/statuses/1172659661"/>
<title>@brunobelon Bom dia. Also, pago derreáu, dois chicletes e um cartão magnético de fiperama no teu Twitter.
</title>
<content type="html"><a href="http://twitter.com/brunobelon">@brunobelon</a> Bom dia. Also, pago derreáu, dois chicletes e um cartão magnético de fiperama no teu <b>Twitter</b>.
</content>
<updated>2009-02-03T11:43:44Z</updated>
<link type="image/png" rel="image" href="http://s3.amazonaws.com/twitter_production/profile_images/60834142/DSC00030-1_normal.jpg"/>
<link type="application/atom+xml" rel="thread" href="http://search.twitter.com/search/thread/1172659661.atom"/>
<author>
<name>x_bacon (Felipe Vicente)</name>
<uri>http://twitter.com/x_bacon</uri>
</author>
</entry>
Ich muß gestehen, ich bin kein guter Coder - habe mir alles aus dem Internet zusamengesucht und versucht nach bestem Wissen und Gewissen zusammenzusetzenPHP-Code:$details = $entry->children(http://base.google.com/ns/1.0');

Ich hoffe, ihr habt eine Idee...
Gruß
KaiHat man ein Problem gelöst, tauchen neue auf...
-
03.02.09 17:41 #2
Hallo!
Gruss Dr DauPHP-Code:$details = $entry->children('http://base.google.com/ns/1.0');
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
Hi Doc,
danke für die erste Hilfe (tja, wenn man als Dau auch sein PHP einfach im Notepad schreibt...
)
Die Fehlermeldung ist nun weg, jedoch macht das Programm trotzdem nichts.
Nach der Meldung: Verbindung zum Datenbankserver erfolgreich ist mein Programm fertig, ohne weitere Ausgabe und ohne, dass irgend etwas in meiner Datenbank landet
Vielleicht hast Du (oder jemadn anderes) noch eine Idee, woran es leigen kann!
Die XML-Datei existiert definitiv und enthält auch Einträge...
Danke nochmals und Gruß
KaiHat man ein Problem gelöst, tauchen neue auf...
-
05.02.09 12:37 #4
- Registriert seit
- Jan 2009
- Beiträge
- 54
Ich weiß nicht, welche Daten genau in den Variablen stehen, aber diese sollten zumindest mit mysql_escape_string() für die sichere
Verwendung einer MySQL-DB maskiert werden:
Das könnte Dein Problem evtl. lösen...PHP-Code:$query = "INSERT INTO atomfeed (id, published, title, content, updated, author) VALUES ('";
$query .= mysql_escape_string($details->id)."','";
$query .= mysql_escape_string($details->published)."','";
$query .= mysql_escape_string($details->title)."','";
$query .= mysql_escape_string($details->content)."','";
$query .= mysql_escape_string($details->updated)."','";
$query .= mysql_escape_string($details->author->name)."')";
Falls das Feld id der DB-Tabelle ein INT ist, mußt Du evtl. die Hochkomma für $details->id weglassen:
Hab mir mal die XML-Manipulation auf php.net kurz angesehen.PHP-Code:$query = "INSERT INTO atomfeed (id, published, title, content, updated, author) VALUES (";
$query .= mysql_escape_string($details->id).",'";
... // den Rest spar ich mir jetzt mal
Habe zwar noch nie damit gearbeitet, aber ich könnte mir vorstellen, daß Du da etwas falsch verwendest?
Ist aber nur ne VermutungGeändert von KingNothing (05.02.09 um 12:49 Uhr)
-
Leg dir bitte einen Editor mit Syntax-Highlighting zu!
Ich meine im Sinne aller von uns zu sprechen, das wir nicht hier sind um irgendwelche fehlenden Kommas oder Punkte zu ergänzen.
Allein durch das grobe überfliegen deines Codes sehe ich schon ein fehlenden single quote..
Such einfach mal hier im Forum, mitlerweile gibt es ca. eine Hand voll ganz guter Editoren, die relative viele der im Web vertretenen Sprachen unterstützen.
-
Hallo zusammen,
danke erstmal für die Antworten, werden den Code heute ändern und testen.
@DeluXe
Kannst Du mir einen Editor empfehlen? Reicht da ein Editor oder sollte man evtl. das PDT von Eclipse nutzen als komplette Entwicklungsumgebung
Gruß
KaiHat man ein Problem gelöst, tauchen neue auf...
-
06.02.09 08:23 #7
- Registriert seit
- Jan 2009
- Beiträge
- 54
Ich denke, daß Dreamweaver ein sehr gutes PHP-Code Highlightning hat.
Wenns kostenlos sein soll, würd' ich persönlich NotePad++ nehmen.
-
Moin,
mit simplexml_load_file() erhältst du bereits einen Zeiger auf das Root-Element, du musst also nur die <entry>'s abfischen.
PHP-Code:$feed = simplexml_load_file('http://search.twitter.com/search.atom?q=twitter');
$entries = $feed->entry;
foreach ($entries as $entry)
{
echo '<br>'.$entry->title ;
//Hier weiter mit dem DB-Gedöns
}
-
DANKE AN ALLE
Et löööft

Hat man ein Problem gelöst, tauchen neue auf...
Ähnliche Themen
-
Datei einlesen - uebermitteln - und wieder abspeichern
Von zu1u im Forum JavaAntworten: 1Letzter Beitrag: 22.01.09, 07:33 -
Datei einlesen und abspeichern in Ringelement
Von Tharmy im Forum C/C++Antworten: 6Letzter Beitrag: 14.11.08, 07:29 -
Zahlen extern abspeichern und bei neustart wieder einlesen
Von Profundis im Forum C/C++Antworten: 0Letzter Beitrag: 08.04.08, 20:38 -
html-Datei einlesen, ändern und neu abspeichern
Von luxlunatic im Forum PHPAntworten: 5Letzter Beitrag: 27.08.07, 15:50 -
einlesen und abspeichern
Von LZD im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 06.12.02, 19:11





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren