Repository 32bit  Forum
Repository 64bit  Wiki

[php] script download rielaborazione file su server remoto

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[php] script download rielaborazione file su server remoto

Messaggioda joe » mar giu 16, 2009 12:31

Premessa: non so praticamente nulla di php e organizzazzione/funzionamento di uno spazio server remoto.

Vorrei capire un po' meglio, creando principalmente qualche script, il linguaggio php e come può essere utilizzato.

Spiego con un esempio quanto ho in testa e quali sono i dubbi e i chiarimenti che speravo di ottenere:
l'esempio è ricollegato ad un'altra discussione del forum che trattava la ricerca di un pacchetto che contiene una certo file...Lasciando perdere i particolari, si arriva all'esigenza di disporre in locale (non è indispensabile ma predetelo per buono) della versione aggiornata del file MANIFEST.bz2.

Il file è di 3.5 MB. Non sono pochissimi... considerando di avere una connessione "antica".
Per risparmiare banda e tempo sarebbe bello poter aggiornare il file locale scaricando "qualcosa" di molto meno pesante.
Da questo ragionamento io avevo pensato al patching del file locale, ovvero scarico solo la patch che porta dalla versione locale a quella aggiornata e la applico aggiornando il file MANIFEST che ho in locale.
Questo prevederebbe però la necessità da parte del repositry remoto di creare e pubblicare le patch del file MANIFEST. E comporta quindi una certa invasività nella consolidata gestione del repository.

L'idea cui ho pensato sarebbe la seguente, e chiedo a voi se è realizzabile:
mettiamo di connetterci ad internet con una connessione lenta e costosa....quindi vogliamo minimizzare la banda.
inoltre mettiamo di avere uno spazio di hosting che supporti gli script php (non che sappia precisamente cosa voglia dire perchè non ne ho esperienza).
Sarebbe interessante scaricare il file MANIFEST.bz2 non in locale, ma in remoto sullo spazio di hosting.
Sul questo server remoto avremmo così una certa versione del file MANIFEST.
Per ottenerla non abbiamo utilizzato la nostra connessione ma la banda del server, quindi il transload è stato molto più veloce.

Ora, perchè non creare la patch in remoto sul server che ospita il nostro spazio web?
Se fosse possibile potremmo scaricare la versione successiva del MANIFEST dal repository al nostro server, scompattare entrambi i file che sono compressi con bzip2, poi eseguire un bel diff, ottenendo una patch che può essere infine compressa con gzip. Dopodichè potremmo anche eliminare il vecchio MANIFEST e ricomprimere il nuovo magari con gzip che è più rapido e comunque c'è poca differenza in termini di dimensione per il nostro scopo.
Alla fine della favola sul nostro spazio server avremmo:
MANIFEST-orig.gz (versione aggiornata)
manifest-diff.gz (da applicare alla versione precedente per ottenere quella aggiornata)

Volendo aggiornare il file MANIFEST locale, basta scaricare con la lenta connessione solamente la patch e applicargliela.

Tutto sto ragionamento, fa chiaramente acqua, non sono entrato nei particolari di gestione delle patch ecc ecc.
Ciò che mi preme chiedervi è:
È possibile utilizzare il linguaggio php per creare uno script del genere? Cosa potrei leggere per capire come fare? (non per imparare completamente il php ma per svolgere queste semplici operazioni....quindi serviranno istruzioni di download e roba del genere e un po' di basi in generale...io so solo utilizzare un po' di bash...Non so nulla di programmazione ad oggetti e sperotanto di cavarmela senza).
Esiste qualche servizio di free hosting che offra un centinaio di MB di spazio e su cui sia possibile utilizzare programmi come gzip bzip2 diff ecc ecc? Se la domanda non ha senso tente conto che non ho mai avuto a che fare con questi argomenti....
Sono andato lungo, ma spero di aver chiarito quali sono le mie esigenze e spero che vi sia più facile rispondermi. grazie in anticipo :)
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda conraid » mar giu 16, 2009 12:38

Avatar utente
conraid
Staff
Staff
 
Messaggi: 12002
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [php] script download rielaborazione file su server remoto

Messaggioda teox99 » mar giu 16, 2009 14:20

ciao joe vedo che sei tornato alla ribalta!
sembra che per te sia diventato un vero problema, quindi bando alle ciance e ti propongo una soluzione

l'unica cosa difficile da superare è un automazione da parte dell'hosting a livello di crontab, ma possiamo evitare facendo una procedura semi auto, nel senso che ogni volta che il srv(hosting) remoto riceve una chiamata esso si incaricherà di scaricare comunque l'ultimo MANIFEST disponibile, computare le differenze (diff manifest_old manifest_new) e ritornare il file con solo le differenze.

mi sembra questo ciò che ti serve no? non essendoci un processo di crontab devi avviare te il processo dopo non troppi gioni o le diff saranno di più.

facciamo la lista della spesa:
uno script php x scaricare il file manifest (puoi usare curl)
uno script per decomprimere il bz2 in php (puoi usare Bzip2 Functions http://it.php.net/manual/en/function.bzopen.php)
ed uno script fatto ad hoc che emuli la diff di bash sotto php (tipo http://www.holomind.de/phpnet/diff.src.php)

ora non ho molto tempo ma potresti iniziare e postare i risultati continueremo ad aiutarti
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 729
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [php] script download rielaborazione file su server remoto

Messaggioda joe » mar giu 16, 2009 14:57

wow, quindi c'è molta carne al fuoco... Vedo che c'è anche zlib quindi non dovrebbero esservi problemi neanche a comprimere in .gz. Direi che riguardo il mio esempio c'è praticamente tutto.
Mmmm, domanda banale, ma indispensabile:
esistono free hosting services che consentono di far girare sul proorio server uno script del genere?

[EDIT]
Hey Teox99!
L'esempio che ho riportato mi sembrava calzante, anche perchè potrebbe avere una certa utilità. Ma resta solo un esempio...diciamo che è la prima cosa che m'è venuta in mente visto che se n'era già parlato qui sul forum ed è un esempio che sfiora la nostra community.

Il discorso più completo da fare tocca un'aspetto di cui non mi ero mai interessato e che, come digitaldiviso e non solo, vedo con estremo interesse.
L'idea di sfruttare un "avamposto" remoto dotato di banda in abbondanza (rispetto a quanta ne ho io) m'ha fatto pensare a diverse soluzioni da sviluppare "server side".
L'altro giorno stavo scaricando un file da rapidshare, e la linea m'è caduta. Mi sono riconnesso ma il resume del file non è stato possibile visto l'account free.
Alla fine cercando un po' ho capito come "carpire" alla pagina di rapidshare l'url del file che si vuole ottenere....tale url si può dare tranquillamente in pasto a wget, ma comunque il resume non viene supportato.
Cerca che ti cerca sono inciampato in rapidleech che lavora "server side" depositando su un server remoto il file (quindi ad alta velocità), terminato questo "transload", basta scaricare il file dal nostro server remoto alla macchina locale, sfruttando il resume tranquillamente in barba alla limitazione di RS.
Poi occcorre dire che trovare un servizio di hosting gratuito che consenta l'esecusione di rapidleech è tutt'altro che facile e leggendo i termini del servizio di diverse offerte pare che tutti abbiano le idee ben chiare nel vietare perentoriamentequesta pratica...d'altra parte su hosting free la banda se la paga il server...quindi le limitazioni sono anche comprensibili, senza tirare in ballo tutto il discorso del copyright.
Insomma da questa storia di rapidleech che non conoscevo e di cui mi intendo praticamente zero, m'è venuta voglia di capire qualcosa di più sul php per fare qualche prova di programmazione lato server. Se poi ne viene fuori anche qualcosa di parzialmente utile, meglio.
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda joe » mar giu 16, 2009 16:54

Dunque, a quanto pare sono riuscito a far funzionare questo script per scaricare un file con indirizzo remoto in un file locale, scopiazzando da google.
Non chiedetemi come funziona e il significato di diverse variabili incluse...so solo che "$argv[i]" rappresenta l'equivalente bash degli argomenti $1, $2,...,$i.
non so che significato abbiano le variabili $cp e $fp, cioè non so cosa significhi quel dollaro che le precede in una assegnazione, ma va bè... è un primo tentativo per capire e comunque funziona ;) .

Codice: Seleziona tutto
#!/usr/bin/php
<?php

function curl_download($remote, $local)
{
  $cp = curl_init($remote);
  $fp = fopen($local, "w");

  curl_setopt($cp, CURLOPT_FILE, $fp);
  curl_setopt($cp, CURLOPT_HEADER, 0);

  curl_exec($cp);
  curl_close($cp);
  fclose($fp); 
}

print $argv[1]." |======================> ".$argv[2]."\n";
curl_download($argv[1], $argv[2])
?>



Mi piacerebbe provare a sottoscrivere un account e provare a farvi girare lo script, tanto per verificare...
Non avete consigli particolari eh?
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda joe » mar giu 16, 2009 20:45

Scusate una banalità:
ho sottoscritto un account su truefreehost, come fare per eseguire lo script php di cui sopra da quell server?
Grazie in anticipo e scusate la domanda banale probabilmente, ma non ho mai fatto nulla del genere... :roll:
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda joe » mer giu 17, 2009 8:20

Mi rispondo da solo...
Allora, avevo messo lo script nella directory remota dove avevano già predisposto un index.html a mò di template....
In pratica collegandosi a ftp.truefreehost.com con lftp:

Codice: Seleziona tutto
/> ls
DO NOT UPLOAD FILES THERE
htdocs
/> ls htdocs  (non srestituisce nulla...chissa perchè....probabilmente non funziona esattamente come il list della shell)
/> cd htdocs
htdocs/> ls
files for remoteserver.truefreehost.com  should be uploaded here!
index.htm
/htdoc> lcd scripts/php
/htdoc> put getmanifest.php
/hrtdoc> ls
/> cd htdocs
htdocs/> ls
files for remoteserver.truefreehost.com  should be uploaded here!
getmanifest.php
index.htm

Ok, a questo punto lo script è stato caricato....rispetto alla versione precedente è leggermente modificato (ho tolto la prima riga per esempio)

Codice: Seleziona tutto
$ cat scripts/php/getmanifest.php
<?php

$repofile = "http://repository.slacky.eu/slackware-12.1/MANIFEST.bz2";
$localfile = "MANIFEST.bz2";

function curl_download($remote, $local)
{
  $cp = curl_init($remote);
  $fp = fopen($local, "w");

  curl_setopt($cp, CURLOPT_FILE, $fp);
  curl_setopt($cp, CURLOPT_HEADER, 0);

  curl_exec($cp);
  curl_close($cp);
  fclose($fp); 
}

print $repofile." |======================> ".$localfile."\n";
curl_download($repofile, $localfile)
?>


Una raccomandazione per non uscirci di testa: ricordare sempre che alla fine di ogni istruzione (riga) serve il ";"!! :lol:
Insomma a sto punto abbiamo lo sccript in remoto nella posizione mostrata sopra.

Per eseguire lo script basta collegarsi all'inirizzo col browser:

http://miosito.truefreehost.com/getmanifest.php

Lo script viene eseguito e tocca aspettare col browser aperto....Ma all afine funzionae se faccio un list della dir remota via ftp vedo il MANIFEST.bz2.
Chiaramente come aveva accennato teox c'è un problema: l'attesa dell'esecuzione dal browser.
In realtà io avevo in mente una soluzione più automatica:
una volta al giorno ad una certa ora il server remoto esegue lo script per i cavoli suoi. Quindi senza che mi debba collegare interattivamente al server e attendere l'esecuzione in real time.
L'idea finale sarebbe quella di avere "sempre" già pronta la patch senza doverne attendere la creazione, questo per risparmiare ancora "parecchio" tempo.
Per ottenere questo sarebbe necessario l'accesso al "crontab" del server, ma non ho idea di dove mettere le mani per capire se il servizio lo concede.

Un eventuale workaround potrebbe essere la sottoscrizione di un secondo servizio tipo VPS o sempre di hosting (anche con caratteristiche scarse in termini di disco e banda) in cui fosse però possibile governarsi una propria crontab. In tal caso si potrebbe eseguire lo script su truefreehost non dalla mia macchina locale, ma dal secondo account via cron. Spero di essermi spiegato.
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda danix » mer giu 17, 2009 8:36

ma a questo punto se sottoscrivessi un vps da cui far girare crontab basterebbe mettere su apache e far girare lo script direttamente da li, no??
Avatar utente
danix
Staff
Staff
 
Messaggi: 3280
Iscritto il: ven ott 27, 2006 18:32
Località: Siderno (RC)
Nome Cognome: Danilo M.
Slackware: 64 14.0
Kernel: 3.2.29
Desktop: fluxbox

Re: [php] script download rielaborazione file su server remoto

Messaggioda teox99 » mer giu 17, 2009 9:34

ciao joe,
ottimo ora hai scaricato il bz2 su remoto.
ora lo devi decomprimere e confrontare con il manifest vecchio,
tirare fuori le differeze (diff) ripacchettizare il file in bz2.

ieri ho trovato un po' di tempo e presto avrai la tua routine funzionante, per ora non ti darò i sorgenti... perchè non te li meriti ancora!
joe ha scritto:Una raccomandazione per non uscirci di testa: ricordare sempre che alla fine di ogni istruzione (riga) serve il ";"!!


vai avanti con gli script e vedremo... :D


danix ha scritto:ma a questo punto se sottoscrivessi un vps da cui far girare crontab basterebbe mettere su apache e far girare lo script direttamente da li, no??

potrebbe essere una soluzione... ci sono servizi di questo tipo credo anche free...
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 729
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [php] script download rielaborazione file su server remoto

Messaggioda joe » mer giu 17, 2009 10:59

IMPORTANTE: non sarò breve! mettetevi comodi... :)

teox99 ha scritto:ciao joe,
ottimo ora hai scaricato il bz2 su remoto.
ora lo devi decomprimere e confrontare con il manifest vecchio,
tirare fuori le differeze (diff)


Fin qui non ci piove.

ripacchettizare il file in bz2.


Qua avrei qualche riserva...
Infatti facendo qualche prova in locale (vedi altro topic in cui se n'era parlato) ho notato che gzip pur mantenendo una dimensione più che accettabile, consente tempi di compressione decisamente convenienti rispetto a bzip2 per cui il MANIFEST lo si può ricomprimere con le zlib che vedo supporteate dal php.
Avevo già accennato a questo fatto in questo stesso topic. Consideriamo la situazione "iniziale" del server

0- non c'è nulla nè MANIFEST.bz2 nè altro. Non è mai stato eseguito l'aggiornamento nè altra operazione.
0.a- scarico MANIFEST.bz2 sul server
0.b- lo decomprimo magari rinominandolo in MANIFEST-orig
0.c- lo ricomprimo con gzip
0.d- sul server avrò MANIFEST-orig.gz
0.e- scarico in locale questo file (spendo un po' più nella banda della mia connessione, ma è un'operazione che si fà una volta sola)
0.f- sia sul server che in locale ho il MANIFEST-orig.gz pronto per essere aggiornato all'occorrenza. La versione locale e quella sul server devon essere identiche ovviamente, altrimenti il discorso patch non avrebbe senso.

Vediamo il primo aggiornamento:

1.a- sul server ho MANIFEST-orig.gz
1.b- scarico sul server il nuovo MANIFEST.bz2
1.c- lo decomprimo con bzip2
1.d- decomprimo anche il MANIFEST-orig.gz
1.e- creo la patch manifest.diff con l'equivalente di diff
1.f- cancello il MANIFEST nuovo
1.d- rcomprimo con gzip il MANIFEST-orig e la patch manifest.diff
1.e- sul server avrò MANIFEST-orig.gz e manifest.diff.gz

I successivi aggiornamenti sono uguali al primo ma in mpiù và prevista la cancellazione della patch presente sul server.

Queste operazioni dvrebbero essere gestite con crontab. A parte il punto "zero" che prevede anche il download in locale del MANIFEST-orig.gz, i successivi aggiornamenti non coinvolgono banda sulla connessione locale, ma impiegano risorse solo sul server remoto.
In particolare, c'è un punto in cui avremo decompresse due versioni del MANIFEST, questo implica che si ha necessità di un servizio di hosting che mette a disposizione almeno circa un centinaio di MByte, altrimenti non si fa nulla.
Questo per rispondere anche a danix: ho notato che i servizi VPS free concedono una quota di spazio disco assai limitata, per questo si potrebbero mettere insieme le due cose: usare il "pane" (spazio disco) che mette a disposizione un servizio di free hosting e i denti (accesso crontab) che invece fornisce un altro servizio (può essere una VPS come un ulteriore servizio di free hosting web).
Poi va detto che mi sono buttato su true free host senza pensarci troppo e unicamente per fare una prova, ma cercando un attimo probabilmente si trova qualcosa di più idoneo, almeno penso.
A questo proposito metto il link:
http://www.free-webhosts.com/free-cron.php

Per terminare il discorso sull'aggiornamento del manifest, consideriamo l'aggiornamento del manifest locale:

2.a- sul server ho MANIFEST-orig.gz e manifest.diff.gz, in locale avrò MANIFEST-orig.gz e una versione di manifest.diff.gz che potrebbe essere più vecchia di quella sul server.
2.b- da locale utilizzo "wget -n" per scaricare la patch manifest.diff.gz solo se ha un timestamp differente (quindi se le due versioni sono identiche il sistema locale è già aggiornato e non se ne fa nulla)
2.c- scaricata la patch lavoro in locale e scompatto il MANIFEST-orig e la patch quindi la applico ottenendo un nuovo MANIFEST-orig
2.d- elimino il vecchio MANIFEST-orig e la patch.
2.e- ora ho però due situazioni differenti in locale e in remoto, in particolare il MANIFEST-orig remoto devono tornare ad essere uguali, pertanto lavorando sul server remoto devo applicare la stessa patch anche al MANIFEST-orig.gz che sta sul server, poi posso anche eliminare la patch remota che non serve più.

Considerando il punto 2.e appare un problemino: quando aggiorno la situazione locale, devo appplicare la patch remota e questo mi fa perdere tempo.
Sarebbe meglio prevedere nell'aggiornamento sistematico del server remoto (operazioni 1-*) anche l'applicazione della patch al vecchio MANIFEST-orig ottenendo quindi sul server un MANIFEST-patched.gz.
Rivediamo allora il punto 1 che ricalca il primo aggiornamento (abbiate pazienza):

1.a- sul server ho MANIFEST-orig.gz
1.b- scarico sul server il nuovo MANIFEST.bz2
1.c- lo decomprimo con bzip2
1.d- decomprimo anche il MANIFEST-orig.gz
1.e- creo la patch manifest.diff con l'equivalente di diff
1.f- non cancello il MANIFEST nuovo, ma lo rinomino in MANIFEST-patched e lo tengo sul server
1.d- rcomprimo con gzip il MANIFEST-orig e la patch manifest.diff e anche il MANIFEST-patched
1.e- sul server avrò MANIFEST-orig.gz e manifest.diff.gz e MANIFEST-patched.gz

Questa modifica mi consente durante l'aggiornamento locale di sincronizzare la situazione locale-remota semplicemente cancellando il MANIFEST-orig.gz dalserver e rinominare il MANIFEST-patched.gz in MANIFEST-orig.gz.
Alla fine dell'aggiornamento locale avremo sia in locale che in remoto unicamente il file MANIFEST-orig.gz nuovo (aggiornato col repo di slacky). Tutto ciò utilizzando per la maggiore la banda del server remoto e solo minimamente (poi dipende dalla dimensione della patch) la banda della nostra connessione.
Inoltre la compressione in gz garantisce una elaborazione meno ingombrante dei file.

Sono andato lunghissimo, ma come vedete, scrivendo ho notato alcuni aspetti da correggere.
Per il servizio free da utilizzare per questa operazione, serve un servizio di hosting con almeno 100MB di spazio e la possibilità di mettere le mani sulla crontab. Nel caso non sia possibile gestire cron, potrebbe bastare un secondoservizio anche con meno spazio da utilizzare in accoppiata al primo per far girare lo script di aggiornamento quotidiano.


ieri ho trovato un po' di tempo e presto avrai la tua routine funzionante, per ora non ti darò i sorgenti... perchè non te li meriti ancora!


Mi basta solo qualche dritta ogni tanto, anche perchè spesso ho le mie esigenze e preferisco imparare ad usare la canna da pesca piuttosto che chiedere il pesce pronto... ;)
Considerando che ieri sapevo poco o nulla di php servers e diavolerie del genere, direi che i risultati ottenuti adesso e rispetto al tempo che ci ho potuto dedicare....mi danno coraggio (anche grazie al vostro supporto ovviamente).

danix ha scritto:ma a questo punto se sottoscrivessi un vps da cui far girare crontab basterebbe mettere su apache e far girare lo script direttamente da li, no??


Come ho già evidenziato, tali servizi free danno un po' poco spazio, senza contare che alcuni non consentono jobs in backgrownd....
Parlo di roba esclusivamente free...infatti non stiamo parlando di esigenze professionali e non ho voglia di sbattermi con paypal, carte di credito ecc...Insomma non ci voglio spendere una lira, opps! un euro. :-D
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda conraid » mer giu 17, 2009 11:11

Ma il php ti serve per esigenze didattiche, per collegarlo poi ad altri script o cosa?
Perché quel che vuoi fare tu lo vedo molto più semplice con un freeshell, cioè quei servizi che ti offrono una shell su cui effettuare quel che vuoi.
Solitamente si usa per esempio per mettere un bot, un client irc stile irssi sempre collegato, etc...

A quel punto non devi fare niente in php, ma usi i normali comandi unix/linux

http://www.red-pill.eu/freeunix.shtml
alcuni come vedi ti danno anche 100mb
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12002
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [php] script download rielaborazione file su server remoto

Messaggioda teox99 » mer giu 17, 2009 12:51

adattando gli script per fare il lavoro di comparazione dei due file MANIFEST sono ricaduto nel solito problema di allocazione di memoria.
Purtroppo la grande dimensione (circa 50Mb x 2) dei files rende impossibile il loro caricamento in php per il confronto e relativa gestione in memoria.

il passo cruciale sta nella riscrittura sotto php dell'algoritmo diff. ovviamente rimpiazzabile con un passthru ma su hosting privato non essendo possibile le alternative sono davvero poche.

@conraid
ottima idea,
forse per questo tipo di problematica sarebbe meglio migrare il tutto sotto una remote shell, creando un bash che automatizzi la procedura descritta.
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 729
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [php] script download rielaborazione file su server remoto

Messaggioda joe » mer giu 17, 2009 13:41

Dunque, diciamo che non avendo mai avuto a che fare con php, volevo provare e al contempo ottenere anche qualcosa con un barlume di utilità.
Quindi l'esperienza era didattica, per curiosità mia.

Nella lista che è stata lnkata non sempre i servizi hanno le caratteristiche esposte nella pagina.
A questo proposito, non è che esista qualche servizio che propone un form d'iscrizione un po' meno "invadente" in termini di privacy?
In tutti quelli che ho visto (ma questo vale anche per il semplice hosting non solo per le freeshells) chiedono sempre nome e cognome indirizzo e persino numero di telefono... Preferirei evitare di dover fornire tutte quelle informazioni. Se conoscete per esperienza qualche servizio che richieda tipo solo l'email...sono tutto orecchi.

Rigurdo ai limiti della creazione della patch, sono relativi intrinsecamente al php oppure derivano dai limiti che impone il server sulla quota di ram che ti fa usare?
Avatar utente
joe
Master
Master
 
Messaggi: 1949
Iscritto il: ven apr 27, 2007 10:21
Slackware: 14.0
Kernel: 3.2.29-smp
Desktop: KDE-4.8.5

Re: [php] script download rielaborazione file su server remoto

Messaggioda danix » mer giu 17, 2009 13:46

http://nic-nac-project.org/index.php
questo non mi ha chiesto nulla oltre ad un nickname e l'email, però per attivare l'account devi mandare una cartolina via posta all'admin del sito... secondo me è un bel sistema antibot :lol:

riguardo ai limiti del php, la seconda che hai detto, il limite viene impostato in un file di configurazione di php...
Avatar utente
danix
Staff
Staff
 
Messaggi: 3280
Iscritto il: ven ott 27, 2006 18:32
Località: Siderno (RC)
Nome Cognome: Danilo M.
Slackware: 64 14.0
Kernel: 3.2.29
Desktop: fluxbox

Re: [php] script download rielaborazione file su server remoto

Messaggioda teox99 » mer giu 17, 2009 13:48

danix ha scritto:riguardo ai limiti del php, la seconda che hai detto, il limite viene impostato in un file di configurazione di php...


ciao il limite di memoria nel php.ini può essere reinpostato usando direttamente nello script
ini_set("memory_limit","128M");

se vuoi fare esperienza su php non c'è niente di meglio che
usare un server tipo LAMP su Slackware in locale!
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 729
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Prossimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite