data feeds csv

D

dutchguru

Guest
#1
Op diverse plaatsen zie je vragen over het toepassen en / of bewerken van data of product feeds.
Uiteindelijk kom er je altijd wel een keer achter hoe eea werkt, ondertussen zit je je soms de pleuris te werken, 101 keer dezelfde feed in te laden, kortom de servers raken voor niets overbelast, waar we met z'n allen best iets aan kunnen doen door af en toe iets van kennis over te dragen.

En omdat dit forum advertentie-netwerk onafhankelijk is, lijkt mij deze plek het meest geëigend.

Om die reden wil ik dit onderwerp openen, eventueel een afzonderlijke openen voor xml, maar csv is voorlopig het meest handig denk ik.

Allereerst is van belang om te weten hoe zo'n feed in elkaar zit, wat staat er in voordat je er iets mee kunt doen.

Kun je meestal in Excel inlezen, mits je dat hebt, maar dan heb je gelijk ook een heleboel overhead te pakken.
Heel handig omdat het een puur zwitsers zakmes/tool is voor alleen CSV, is de csv editor van de onvolprezen nederlander Sam Francke, en dat programma is cardware, dat wil zeggen dat hij het op prijs stelt om een kaartje van je te ontvangen, en je vindt het programma hier : http://home.hccnet.nl/s.j.francke/software/software.htm .
Kun je zo nodig een eerste regel verwijderen of juist toevoegen, kolommen bewerken, scheidingstekens veranderen van comma (daarom heet het ook csv ofwel comma seperated values ) naar puntcomma (semicolon) of naar pipe of tab of vaste lengte.

Let er wel op, wanneer je een csv in dit programma binnenhaalt, wanneer de hele inhoud in 1 kolom staat, heeft het programma de juiste afscheiding niet gevonden, kies je in de modificatie kolom 1 voor een andere, tik even op het vernieuwen symbool, en je kunt verder.

Wie meer tips heeft, ik kijk ernaar uit !
:)
 
D

dutchguru

Guest
#2
Het ziet er naar uit dat ik iets begonnen ben, waar geen behoefte aan is, ofwel beginners tools aanreiken.

Ga er toch nog een aan toevoegen, een supertool voor diegenen die
ofwel nog helemaal moeten leren met databases om te gaan,
ofwel op hun website wel php maar geen SQL databases hebben en dat komt voor,

dan kun je in de combinatie van het programma wat ik hiervoor heb genoemd de CSVed de flatfile = database componeren, weliswaar in verband met het navolgende met scheidingsteken "pipe",

en als database driver : http://www.pjj.pl/pjjtextbase/ de pjjTextBase gebruiken. Van Poolse origine, engelstalig, en freeware.

Voor grote datafeeds niet geschikt, voor kleinere max. een half tot hooguit een megabyte omvang,
maar ideaal voor even snel een geschikte feed maken met een minimum aan inspanning (ok, je moet je er even in verdiepen).

Voorbeeld, een klokkenbedrijf geeft 2 feeds, de normale en 1 voor de top 10. Om die top 10 ook in een SQL te stoppen is me te veel, dus die gaan in de pjj TextBase, resultaat zien ? klik dan hier http://www.mynidee.com/mode/horloge.htm

Of de top 10 van Ako , ok, ik weet dat er een automatisch ge-update banner te krijgen is, maar omdat die update toch een tijd lang statisch bleef en ik nog andere plannen met die pagina heb, staan ook deze 10 vermeld met behulp van de beide genoemde programma's, je vindt die pagina hier http://www.mynidee.com/huis/akotiental.htm.

Je kan de maker van pjjTextBase in het engels schrijven voor toelichting, al is er een documentatie beschikbaar.

Kortom, voor websites met SQL en zonder SQL is er een leven met datafeeds mogelijk!
:D
 
D

dutchguru

Guest
#5
datafeeds komen je meestal niet vanzelf aanwaaien, en zeker wanneer ze een bepaalde omvang hebben, moet je ook kijken naar de regels die de verstrekker geeft en respect hebben voor diens traffic kosten en die van jezelf......... ;D

Er zijn verstrekkers, die je een feed direct laten downloaden naar je pc, heel netjes . Er zijn verstrekkers, die zelfs de instellingen zoals csv of xml, lettercodes, lijstscheidingstekens etc voor je onthouden, zeer zeer netjes.

Maar veelal bij grotere bestanden kun je beter het ontvangen website-adres in url vorm even ergens bewaren en vervolgens droppen in een php bestandje, dat je telkens op nieuw kunt toepassen en - beter - plaatst op de server, in de directory daar waar de feed terecht moet komen.

Een simpele vorm van zo'n php bestand kan er zo uitzien :

<?php
// achter deze 2 streepjes is commentaar
// - deze twee variabelen vullen naar behoefte
$fileIN = "ht tp://w ww.advertisingnet . nl/restant van de url dus van quote tot quote vervangen";
$fileOUT = "verzamelbestand.csv"; // dit bestand moet schrijfbaar zijn : chmod (unix/linux) naar 666 desnoods hoger afhankelijk van de beveiliging op php / apache niveau van ieders hosting

//----- in principe hieronder niets meer veranderen

$handleIN = fopen($fileIN, "r");
$handleOUT = fopen($fileOUT, "wb");

$content = file_get_contents ($fileIN);

if (is_writable($fileOUT)) : // check of het doelbestand schrijfbaar is anders gaan we er gelijk mee uitscheiden, zie de laatste regel

if (!$handle = fopen($fileOUT, 'wb')) :
print "Kan het bestand niet openen ($fileOUT)";
// was de url in $fileIN wel goed
exit; // blijkt niet te openen dus stop
endif;

// Schrijf $content naar ons bestand dat we geopend hebben.
if (!fwrite($handle, $content)) :
print "Kan niet schrijven naar bestand ($fileOUT)"; //toch ook daar nog een fout
exit;
endif;

print "Succes, inhoud geschreven naar bestand ($fileOUT)"; // Yippie, gelukt !

fclose($handleOUT); // netjes beiden afsluiten
fclose($handleIN);
else:
print "Het bestand $fileOUT is niet schrijfbaar";
endif;


?>

En groter hoeft het niet te zijn, mag wel, mag ook anders, maar het werkt.

Hierna heb je dus alleen het bestand overgezet van de ene server naar de andere, en voordat je het in 1 aktie doorsluist naar bijv. een database moet je eerste testen of er zaken in staan, die je anders had gewild, maar wellicht zijn er schrijvers onder ons die dat al kant en klaar hebben voorbereid. :)

Let op : bij fileIN heb ik een aantal spaties express toegevoegd om de te voorkomen, dat de url er te echt uit gaat zien en iemand onvermoed of onbewust op een link gaat drukken die toch niet bestaat, dus zoals het er staat : van quote tot quot wijzigen.

Zoals gezegd, met een ftp programma plaats je het bestand op de juiste plek op je server, en vanaf een lege pagina in je browser start je het op.
 

edynas

Nieuw lid
22 mei 2006
42
0
0
www.twikpress.nl
#6
Wat ik doe met csv is openen in openoffice die daar en betere conversie voor heeft dan Excel, sla het op als excel bestand en vervolgens importeer ik het in Mysql met Navicat.

Waar ik vandaag een beetje mee aan het rommelen ben is de data uit de mysql database weer om te gooien naar een rss bestand wat ik wil inladen in mijn blog....maar dat lukt me alleen met een omweg (door de data om te zetten naar een wordpress post die ik in een testversie van wp zet en daaruit weer de feed trek)

Datafeeds zijn wat mij betreft ideaal om je site inhoud te geven en ik kom tijd te kort om alle datafeeds die er zijn ook daadwerkelijk om te zetten naar inhoud maar het gat in ieder geval sneller dan met deeplinks.
 
D

dutchguru

Guest
#7
vraagje:
Navicat ken ik niet, omdat myn grootste hostingleverancier geen remote ( besturing op afstand ) op databases toelaat, dus of via phpMyAdmin of gewoon via een php script.
Ben toch even bij Navicat wezen kijken, en die - zeggen ze op de site - is in staat om te exporteren naar xml. En , wanneer ik dat vergelijk naar de mogelijkheden van bijv. DBtools (vergelijkbaar) , dan is het wellicht toch mogelijk evt met behulp van een template, om die xml te vormen naar Wordpress ? Of mis ik iets tov Wordpress.