Quanto tempo ci può mettere una pagina php per esaminare 100 pagine xml e crearne un altra ricavata con alcuni dati presi da queste? E se le pagine fossero molte di più? Grazie.
Quanto tempo ci può mettere una pagina php per esaminare 100 pagine xml e crearne un altra ricavata con alcuni dati presi da queste? E se le pagine fossero molte di più? Grazie.
Il tempo non te lo saprei dire, ma credo che dipendi anche dal numero di contenuti nei file xml
Ultima modifica di sevenjeak : 19-01-2010 alle ore 10.09.30
Non vorrei fare un lavoro complesso, magari in una settimana, per poi ritrovarmi una pagina che va in timeout... per questo vi chiedo aiuto!
Poco, una decina di nodi con poche info dentro.
La cosa deve essere svolta con un cronjob, non dagli utenti.
Ho provato (su AV) ad aprire sempre lo stesso file per 100 volte con un loop (con le librerie cURL), il tempo impiegato è stato di 17.378211975098 secondi, anche se lo script non è stato interrotto.
Ora non so perchè superati i 15 secondi l'esecuzione dello script si sia interrotta...Codice PHP:
$t1 = microtime(true);
for($i = 1; $i <= 100; $i++) {
$ch = curl_init("h**p://feeds2.feedburner.com/filehippo?r={$i}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$code = curl_exec($ch);
curl_close($ch);
}
$t2 = microtime(true);
echo $t2 - $t1;
Lo potreste provare su un xml ospitato nello stesso server dove eseguite lo script? Scusate ma al momento non ho uno spazio dove testarlo... (ho un alterforum)
Allora, il risultato è nettamente migliorato !
Con un file interno al server, caricato 100 volte di seguito, lo script ci ha impiegato 0.011648893356323 secondi!
Ho provato con un file xml strutturato in questo modo:
E ho usato DOMDocument per caricare il fileCodice:<?xml version="1.0" encoding="utf-8"?> <root> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> </root>
Mi fate un'ultima cortesia? (io intanto l'applicazione la sto facendo...)
Io lavoro con simplexml ma credo che la velocità sia più o meno quella.
Dopo averli caricati, dovresti mettere questo xml:
Mettere tutti i valori recuperati in un array, ordinare l'array ed infine creare un xml con una "classifica" con l'array ordinato...Codice:?xml version="1.0" encoding="utf-8"?> <root> <item> <node>100</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> <item> <node>valore</node> </item> </root>
Se è troppo fa niente, ti ringrazio MOLTISSIMO per quello che hai già fatto!!!
Mi serve sapere come è composto ogni singolo file da recuperare, cioè se è:
Oppure è diverso?Codice:<root> <item> <node>Valore</node> </item> </root>
Poi gli elementi devono essere ordinati in base a quale criterio?
Cioè dopo aver analizzato un foglio devi prenderne un valore numerico e poi ordinarli, infine stamparli in un foglio xml a mò di classifica. Ma adesso che ci penso il problema principale è l'xml che contiene tutti gli md5 degli ip che hanno visitato qualcuno. Potrebbe arrivare a 1000-2000 nodi! A questo punto è meglio un db? Il problema è che le query limitate sono un casino...
Eh misà che per queste operazioni sei costretto ad usare un database, io ti consiglio SQLITE, non hai nessun limite di query
E per quello che devi fare mi sembra adeguato!
La sintassi per le query è sempre quella (SQL), ha delle funzioni in meno.
http://php.net/manual/en/book.sqlite.php
Ultima modifica di mycarlo : 20-01-2010 alle ore 17.46.13
Ti ringrazio moltissimo, una parte la manterrò in xml per dare la possibilità ai programmatori di collegarsi con il mio applicativo, e cercherò una buona guida per sqlite! Ciao!
Ci sono riuscito! Adesso curerò la parte grafica. Grazie mille a tutti quelli che mi hanno aiutato!