Antwort #528 am: 20. März 2011, 20:08:41
[...]
genau das habe ich auch gesehen mit dem Cache in die Datenbank, aber ich denke damit wird die Datenbank wirklich ziemlich voll...
Den Cache in seperate Ordner zu legen, so wie es jetzt z.Z. ist finde ich es besser. Auch mit der delete.php die dafür gedacht war, hin und wieder alle gecacheten Daten inkl. Leichen zu bereinigen und ggf. Änderungen im XML-Code einzupflegen!
[...]
Da mit der vollen Datenbank ist schon richtig, aber durch die Ablage in der DB ergibt sich auch die Möglichkeit, eine erweiterte Suchfunktionen zu realisieren. Also z.B. Einschränkungen auf die Speichergröße eines Notebooks oder ähnliches. Möglicherweise kann der Shop das ja jetzt schon, dann habe ich das aber noch nicht gefunden. Zudem läßst sich in Verbindung mit der InnoDB referentielle Integrität realisieren und damit die DB sauber aufräuem. Geht natürlich auch mit den Dateien, ist aber aufwändiger und man muss es ausprogrammieren, was immer auch zu Fehlern führen kann (aber nicht muss).
[...]
Vorausgesetzt ICEcat erlaubt Caching der Dateien!
[...]
Ohne es wirklich zu wissen, gehe ich eigentlich davon aus. Die bieten ja sogar eine Software an, die den Bestand hostet, z.B. für den Falls , dass man mehrere Shops betreibt oder die Daten noch anderweitig nutzt. Letztendlich muss das ja sogar in deren Interesse sein, da durch das Caching Serverlast eingespart wird. Hier der Link zum Tool:
IcecatPIMUnd hier
What is the Icecat Fair Use Policy? kann ich eigentlich auch kein Cache Verbot erkennen.
[...]
Ich stelle nochmal deine Function getICEcatXML mit ein paar geänderten Stellen hier rein.
Schau mal bitte drüber und sag was du davon hälst! Ach ja, was bezweckst du mit der Funktion "error_log()"?
[...]
error_log dient nur für Debugausgaben und kann entfernt werden. FirePHP ist da eigentlich eleganter, da man dann nicht ständig in in der ServerLog nachschauen muss sondern das bequem im Firebug anschauen kann.
$xml = new SimpleXMLElement
($data); $xml_item = $xml->xpath("//ProductFeature"); if ($xml_item != null) { //error_log("req: " . $requesttype . " ean: " . $ean . " htn: " . $vendor . " vendor: " . $vendor_name ." curlinfo: ". curl_getinfo($ch,CURLINFO_CONTENT_TYPE)); //error_log("curlinfo: ". curl_getinfo($ch,CURLINFO_CONTENT_TYPE)); file_put_contents($xmlfile, $data); curl_close($ch); return $data; } Sowas in der Art hatte ich auch überlegt, mich aber dagegen entschieden, da dann auch immer wieder geladen wird, auch wenn ICEcat sowieso nichts im Katalog hat. Bevorzugen würde ich einen "intelligenteren" Löschmechanismus, der ab und an die "leeren" Files (Leichen) löscht, um einen neuen Ladeversuch zu ermöglichen.
Grüße
Torsten