Newsgroup: it.comp.lang.javascript
Titolo: leggere file di testo sul server?

salve ,
mi chiedevo de e' possibile leggere le righe di un file di testo
con javascript, il file si trova sul server (linux) nella stessa 
directory del mio sito
grassie



no, devi lavorare server-side e restituirlo.
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.

Il Tue, 27 Nov 2007 16:06:14 +0100, roberto T ha scritto:

Puoi leggerlo tutto (non solo alcune righe) se e` pubblico (non nascosto 
da htaccess o simili), con XmlHttpRequest.
Bye.


Un file di testo si può leggere con qualsiasi browser, una volta letto
si può usare tutto ciò che il DOM mette a disposiizione.

 si può usare tutto ciò che il DOM mette a disposiizione.
diciamo che ho un file .txt con due righe , ogni riga contiene un numero
quindi volgio importare i due numeri in due varibile globali javascript
diciamo un po' come la funzione file di php
quello che ho provato (mischiando un po' di php e javascript e' questo)
<?php
	print '<script type="text/javascript">';
	print '<!--';
	$negozi=file("interno_centro/negozi.txt");
	print 'var num_piani='.$negozi[0].';';
	print 'var num_negozi='.$negozi[1].';';
	print'// -->';
	print'</script>';
  ?>
ma non sembra funzionare anche se poi l' ho corretto mettendo ."\n"
<?php
	print '<script type="text/javascript">'."\n";
	print '<!--'."\n";
	$negozi=file("interno_centro/negozi.txt");
	print 'var num_piani='.$negozi[0].';'."\n";
	print 'var num_negozi='.$negozi[1].';'."\n";
	print'// -->'."\n";
	print'</script>'."\n";
  ?>
solo che non mi sembra un metodo molto pulito


Ho poco tempo per preparare qualcosa cross browser ti passo il codice
funzionante per IE6 dovresti adattarlo per FF, IE7 ed altri. Se lo fai
ti prego posta la soluzione così risparmiamo tutti molto tempo.
Quindi per questo esperimento usa IE6, non so se vale anche per IE7
non ho provato.
Tutti i file sono nella stessa directory, il file txt di prova
contiene due righe con un numero diverso per ogni riga
23
678
Il risultato di alert è
<HEAD></HEAD><BODY><PRE>23
678</PRE></BODY>
------------------------
file html
------------------------
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN 
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
">
<html xmlns="
http://www.w3.org/1999/xhtml
" lang="en-US" xml:lang="en-
US">
<head>
<title>Leggi txt</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="leggitxt.js"></script>
</head>
<body>
<button onclick="javascript:popitup('righe.txt','100','100');">Apri
txt</button>
</body>
</html>
------------------------
file js
------------------------
var newwindow = '';
function popitup(url,hh,ww) {
	if (!newwindow.closed && newwindow.location) {
		newwindow.location.href = url;
	}
	else {
		newwindow=window.open(url,'scrivimessaggio','height=' + hh +
',width=' + ww);
		if (!newwindow.opener) newwindow.opener = self;
	}
	if (window.focus) {newwindow.focus()}
var elementi = newwindow.document.documentElement;
var contenuto = elementi.innerHTML;
alert(contenuto);
return false;
}

 
funziona sia su firefox 2.0.0.10 che su opera 9.24
(testati su linux)

 (testati su linux)
Ho provato su FF 2.0.0.10 per Windows ma non funziona, in genere
innerHTML non funziona come dovrebbe e devo usare i range e relativi
fragment. Però può anche essere legato alla configurazione di FF.
Non ti fidare perchè qualcuno in rete potrebbe non vedere i risultati
per via di innerHTML. A titolo di esempio, per inserire informazioni
in un div uso il seguente codice cross browser:
function scrivi_div(cn){
var id = 'iddiv';
if (document.getElementById && !document.all){
rg = document.createRange();
el = document.getElementById(id);
rg.setStartBefore(el);
fr = rg.createContextualFragment(cn);
while (el.hasChildNodes())
el.removeChild(el.lastChild);
el.appendChild(fr);
}
else {document.getElementById(id).innerHTML = cn}
}
Con questo codice sono più rilassato, è più sicuro. Bisognerebbe
adattarlo per la lettura del file txt.
Ciao
Oreste



Prova con questo:
<html><head>
<script type="text/javascript">
function openWin( windowURL, windowName, windowFeatures )
{
return window.open( windowURL, windowName, windowFeatures )
}
</script>
</head>
<body>
<a href="#" onclick="javascript: newWindow = openWin( 'pippo.txt','popup','width=300,height=300,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=1,resizable=0,screenX=0,left=10,screenY=0,top=120');newWindow.focus()">open pippo.txt</a></body></html>
-- 
    * b *
  *   y   *
*   Piero   *
[ /carpe diem/ ]