Newsgroup: it.comp.www.php
Titolo: Quesito banale

Ciao a tutti,
un mio amico ha ottenuto come risposta a un quesito la seguente url:
http://www.azzurra.org/scripts/counter.php?chan=italiani
la quale restituisce un valore intero, digitando questa dal browser, 
tuttavia "incapsulando" in qualcosa di questo tipo:
<script language=\"JavaScript\" 
src=\"
http://www.azzurra.org/scripts/counter.php?chan=italiani\
"></script>
per inserirla in una riga di codice php, non viene piů visualizzato il 
valore intero.
Dal momento che non posso modificare il file counter.php in che modo posso 
risolvere il problema?
Lo so... che č una "stronzata" perň non mi viene in mente in questo 
momento... mi scuso e rimango in attesa di una risposta.
Cooper.
-- 
[web:]  
http://www.blueware.it
 
http://www.italchat.it
[icq:]  146 781 935
[msn:] 
coo...@blueware.it
 

 valore intero.
<?php
 include("
http://www.azzurra.org/scripts/counter.php?chan=italiani
");
?>
Ciao,
 Fabrizio
-- 
http://www.negusweb.it
 --- Sito in allestimento

 src=\"
http://www.azzurra.org/scripts/counter.php?chan=italiani\
"></script>
Perche` tenti di eseguire come javascript un numero intero?
Banalmente, se vuoi visualizzarlo fai un include, oppure apri il sito con
open() e leggilo con read().
Bye.


Provando a fare come suggerito ricevo questi errori:
Warning: main(
http://www.azzurra.org/scripts/counter.php?chan=italiani
) 
[function.main]: failed to open stream: Impossibile completare 
immediatamente l'operazione sul socket non a blocchi. in C:\Documents and 
Settings\etc etc
Warning: main() [function.include]: Failed opening 
'
http://www.azzurra.org/scripts/counter.php?chan=italiani
' for inclusion 
(include_path='c:\programmi\php5') in C:\Documents and Settings\etc etc
cosa faccio? Grazie ancora.



Ho provato con il seguente scripts:
<?php
// copia il contenuto di un file in una stringa
$filename = "
http://www.azzurra.org/scripts/counter.php?chan=italiani
";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
print $contents;
?>
però mi da tutta una serie di errori :( puoi verificare anche te... se mi 
puoi dare ulteriori chiarimenti ti sarei grato.


 
Probabilmente nel tuo php.ini la variabile "allow_url_fopen" č impostata a
0.
http://it.php.net/manual/en/ref.filesystem.php#ini.allow-url-fopen


"Negus" <neg...@NOSPAMinfinito.it> ha scritto nel messaggio 
news:igb672...@news.tiscali.it...

Nel mio php.ini ho cosi:
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On
dovrebbe essere corretto, fammi sapere.


 Cooper.
if ($handle)
{
    $contents = fread($handle, 10);  // filesize non va sempre via http
    fclose($handle);
}
cmq. dipende dal tuo php.ini  se ti permette accesso a pagine esterne
manda eventuali errori (mi da una serie di errori e' uno statement un
po' occulto)
se non ti va con fopen, prova curl (dubito che poi ci sia)


Ho dato una lettura su: 
http://it.php.net/manual/en/ref.curl.php
  ma 
sinceramente non ci ho capito molto, puoi farmi un esempio piů pratico? per 
cortesia.
Grazie ancora,


 Grazie ancora,
certo... , cmq. proviamo prima con wget passato a system:
<?php
echo "system call wget\n";
$tmpname=tempnam("/tmp","");
system ("wget -q -O $tmpname
\"
http://www.azzurra.org/scripts/counter.php?chan=italiani\
"");
readfile($tmpname);
@unlink($tmpname);
?>
e questo sarebbe on curl
<?php
echo "curl library:\n";
$ch = curl_init("
http://www.azzurra.org/scripts/counter.php?chan=italiani
");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);
curl_close($ch);
?>


Se lo eseguo in remoto ottengo questo errore:
system call wget wget: missing URL Usage: wget [OPTION]... [URL]... Try 
`wget --help' for more options.
---------------- 
curl library:
Fatal error: Call to undefined function: curl_init() in etc etc
se invece lo eseguo in locale ottengo:
system call wget
---------------- 
curl library:
Fatal error: Call to undefined function curl_init() in etc etc
Grazie per la pazienza attendo riscontri.


 Fatal error: Call to undefined function: curl_init() in etc etc
ok, nessun curl support.
cmq. wget esiste.
ora tocca a te a capire come farlo funzionare
prova (non in locale, pare che li non ci sia wget):
<?php
$tmpname=tempnam("/tmp","");
$url="
http://www.azzurra.org/scripts/counter.php?chan=italiani\
";
system ("wget -q -O $tmpname $url");
readfile($tmpname);
@unlink($tmpname);
?>
se hai un accesso shell al server scrivi direttamente al prompt:
wget -O counter.txt 
http://www.azzurra.org/scripts/counter.php?chan=italiani
in counter.txt dovresti trovare la pagina
per il resto non e' piu un problema PHP ;-)

 ha scritto nel messaggio 
news:cnq977$fff$1...@news.ngi.it...

Cosi comincia ad andare meglio, il problema č che adesso il valore intero 
dovrebbe essere contenuto in una variabile, ho provato a mettere:
$prova = readfile ($tmpname)
ma nulla, credo ci siano caratteri di controllo e quando li visualizza il 
testo o meglio l'intero sfasa.
Mette insomma una cifra in una riga e un altra cifra in un altra riga, come 
si puň ovviare?
Grazie ancora, Cooper.
PS: In pratica vorrei che i codici di controllo venissero ignorati e al 
tempo stesso che il risultato (un numero) venga memorizzato in una 
variabile.


 Cooper.
Usando fopen ?
Dovresti riuscirci
-- 


 
Nella pagina di documentazione di include
http://us2.php.net/manual/en/function.include.php
ho trovato:
---------------------------------------------------------------------------
Windows versions of PHP prior to PHP 4.3.0 do not support accessing remote
files via this function, even if allow_url_fopen is enabled.
--------------------------------------------------------------------------



Nulla da fare invece, il problema cmq non è solo in locale, ma anche in 
remoto, qualche risultato l'ho ottenuto grazie a Jurjen, però sebbene adesso 
riesca a leggere il file, non riesco ad assegnare il contenuto a una 
variabile, (escludendo i codici di controllo) :(


 
ma un semplice..
<?php
$number =
file_get_contents("
http://www.azzurra.org/scripts/counter.php?chan=italiani
");
echo $number;
?>
non va bene?
-- 
www.iuz-lab.info


Grazie questa soluzione č quella piu funzionante. Adesso ho risolto :) 
Grazie anche a coloro che hanno provato a darmi una mano.


 testo o meglio l'intero sfasa.
readfile passa il file a stdout e torna il numero di byte lette,
potresti usare velocemente file:
$prova=join("", file($tmpname));
leggi ognitanto il manuale, ti risparmiera' un sacco di problemi (e tempo)...
Ogni funzione che non sia chiara, anzi, anche se ti sembra chiara:
 
http://it.php.net/nome_funzione


E' quello che normalmente faccio direttamente consultando la versione in 
lingua italiana.
Cmq grazie mille :) per il tuo contributo ^_^
Cooper.
