Kijken of een XML bestand is geupdate

Status
Niet open voor verdere reacties.

Jorryt

Gebruiker
Lid geworden
19 dec 2010
Berichten
246
Is dit mogelijk?
Er zit wel een datum bij.
Ik sla alles op in een database, maar hij hoeft dan natuurlijk alleen de nieuwe te updaten...
 
een timestamp in de filename van je xml-file verwerken.
Dan kun je het makkelijkste zien wanneer hij voor het laatst is geupdate.
 
Helaas lees ik het xml bestand uit. Ik schrijf hem niet zelf en ben niet in staat er ook maar iets aan te veranderen. Het is namelijk mijn eigen rss van twitter...
 
je zou ook de datum uit de bestandsgegevens kunnen opvragen.

of de datum uit je xml lezen
 
Laatst bewerkt:
Jaa oke, zover was ik al,
maar herkent php datums?
ziet het 2-3-2011 niet als een rekensom?
 
niet als je het in een string gebruikt.

$date = date("d-m-Y");

geeft een string "13-01-2011"
 
Oke, maar hoe weet PHP dan dat ik met de 1 dag bedoel en de andere de maand?
Want ik hoef natuurlijk niet de huidige datum te genereren.

$date = date("01-10-2010");

En hoe kan ik er dan de tijd bij doen?
 
Laatst bewerkt:
Als je hier een kijkje neemt, daar staat precies verteld hoe en welke gegevens de date() functie kan genereren.

En met behulp van explode of split kun je de datum/tijd van het xml bestand aanpassen, zodat je een zelfde string opbouw hebt die je vergelijkt met de date() string
 
Bekijk kort eens timestamp hier kan je ook een datum aan meegeven en sneller in vergelijken wat toch belangerijk is
 
Maar de tijd waar hij tegen vergelijk is een string die uit een xml bestand komt.
 
In de database die hij wil updaten toch niet en je moet dan toch weten welke de hoogste datum heeft om dan snel te kunnen starten en vergelijken. Dacht ik timestamp
maar het lukt ook met explode maar als iets op een bepaalde mannier is gemaakt verander je het niet zo snel meer

dus denk na voor je iets toevoegd dat je later niet moeilijkheden op het lijf haald.
onnodige veel processor gebruiken is ook te vermijden maar dat moet je zelf bekijken.
 
Het ging er hier om dat hij de tijd wou vergelijken die in een xml file zit die hij van twitter haalt.

Hoe hij het daarna verder verwerkt is aan hem. En ik geloof niet dat het een heavy user site gaat worden. Ik gok dat de server die paar processen wel aan kan.

Maar overall heb je wel gelijk. Hoe beter doordacht de start deste makkelijker het onderweg is
 
Oke, dit is wat ik doe.

Met dom haal ik de gegevens op die ik nodig heb.
Met explode knip en plak ik de datum in de goede volgorde
IK voeg deze datum toe aan de database, samen met mijn tweet zelf.
Vervolgens haal ik hem op met "order by datum desc" onder aan de querry
(Er zitten niet alleen tweets, maar ook mijn blog dingen in)

Het is voor mijn blog, het leek me leuk om ook mijn tweets hierin te verken.
Ik denk niet dat dit teveel gevraagd is voor mijn server?
Of denken jullie dat er een makkelijkere manier is?

Dit is het script wat ik er nu voor gebruik:
Het enige probleem is nu nog dat zodra er nieuwe tweets doen hij het doet, zodra dat niet zo is, hij problemen geeft omdat die de laatste nog wil invoegen. Ik denk dat het aan de while voorwaarde ligt, maar heb ik geen idee waar het aan zou kunnen liggen:

PHP:
<?php

//////////////////////////////////////////////////////////////////////////////////////
//
//Tweets ophalen en in database stoppen
//
//////////////////////////////////////////////////////////////////////////////////////

// Variables
$server = "localhost";
$gebruikersnaam = "root";
$wachtwoord = "130048";
$database = "about";

//Connectie met database
$connectie = mysql_connect($server,$gebruikersnaam,$wachtwoord) 	or die("Er kon geen connectie met de server gemaakt worden");
mysql_select_db($database,$connectie);

//Kijken wat de laatst toegevoegde tweet is zodat die daar kan stoppen. 
$querry2 = "SELECT MAX(datum) FROM berichten WHERE soort = \"twitter\"";
$maxdatum = mysql_query($querry2,$connectie) or die("De maximale datum kon niet opgehaald worden");
$max = mysql_fetch_array($maxdatum,MYSQL_BOTH);

//Welke tweet rss - hoeveelste tweet
$feed = 'http://twitter.com/statuses/user_timeline/139398955.rss';
$feednr = "0";

//Loop starten 
while($datum < $max["0"]) {
$feednr = $feednr+1;	
	
//script
$document = new DOMDocument();														//Domdocuments gebruiken
$document->load("$feed");															//De feed ophalen
$tweet1 = $document->getElementsByTagName("title") ->item($feednr) ->nodeValue;		//tweet $feednr laden,
$datum1 = $document->getElementsByTagName("pubDate") ->item($feednr-1) ->nodeValue;	//datum $feednr laden,
$link = $document->getElementsByTagName("guid") ->item($feednr-1) ->nodeValue;		//link $feednr laden,

//De tweet onder handen nemen
$tweet = str_replace("JorrytT: ","",$tweet1);

//Datum onder handen nemen
$datum_goed = str_replace(" +0000","",$datum1);
$datum_goed = str_replace("Jan","01",$datum_goed);
$datum_goed = str_replace("Feb","02",$datum_goed);
$datum_goed = str_replace("Mar","03",$datum_goed);
$datum_goed = str_replace("Apr","04",$datum_goed);
$datum_goed = str_replace("May","05",$datum_goed);
$datum_goed = str_replace("Jun","06",$datum_goed);
$datum_goed = str_replace("Jul","07",$datum_goed);
$datum_goed = str_replace("Aug","08",$datum_goed);
$datum_goed = str_replace("Sep","09",$datum_goed);
$datum_goed = str_replace("Oct","10",$datum_goed);
$datum_goed = str_replace("Nov","11",$datum_goed);
$datum_goed = str_replace("Dec","12",$datum_goed);

//Herknippen
$stukjes_datum = explode(" ", $datum_goed);
$jaar = $stukjes_datum["3"];
$maand = $stukjes_datum["2"];
$dag = $stukjes_datum["1"];
$tijd = $stukjes_datum["4"];

//Plaken van de datum
$datum = "$jaar-$maand-$dag $tijd";

//querry maken
$querry = "
INSERT INTO berichten VALUES(NULL,\"twitter\",\"$tweet\",\"$datum\");
";

//Querry uitvoeren  - "De querry die de gegevens in de Database zou moeten stoppen kon niet worden uitgevoerd<br>"
$uitvoeren = mysql_query($querry,$connectie) or die(mysql_error());
}

//Database sluiten
mysql_close($connectie) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!"); 

?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan