récupérer fichier .txt sur un serveur

Petit nouveau ! | 3 Messages

07 févr. 2012, 15:18

Salut à tous,

Je travaille sur un projet web météo avec pour but de rapatrier les données météo depuis un automate et j'aimerais savoir comment fait-on pour récupérer un fichier .txt sur serveur svp?

Merci par avance

ViPHP
xTG
ViPHP | 7331 Messages

07 févr. 2012, 15:24

file_get_contents() fonctionne avec les URLs. ;)
Ainsi que fopen() et autres fonction de même utilité.

Petit nouveau ! | 3 Messages

07 févr. 2012, 15:29

ok je suis un débutant en matière de code
si j'ai bien compris je le place au début de mon code qui servira à lire et à écrire un fichier .txt ?

ViPHP
xTG
ViPHP | 7331 Messages

07 févr. 2012, 17:26

Attention vouloir écrire dans un fichier distant c'est plus du tout la même problématique...
Faut que le serveur soit configuré pour autoriser cela ! Et c'est rarement fait pour raison de sécurité.
Ou alors il faut que le script soit sur le serveur où se trouve le fichier, ou bien qu'il mettre à disposition un script de lecture/écriture (webservice).

Petit nouveau ! | 3 Messages

07 févr. 2012, 17:51

ok j'utilise un serveur eWon sur lequel je dois rapatrier les données météo pour l'afficher sur excel tout d'abord puis sur mon site web météo:
donc il y a 4 étapes:
1er étape: Rapatrier le fichier .txt du serveur en question PHP
2ième étape: Lire et ECRIRE un ficher .txt
3ième étape: afficher en excel
4ième étape: rediriger les données excel sur mon site web météo

De ce fait voici le code que j'ai effectué (en pièce jointe)
<body>
<h2 align="center">Récupération de données</h2>
<?php
$fp = fopen("fichier.txt","r" );
while(!feof($fp)) // Tant que l'on n'est pas à la fin du fichier on continue de lire le fichier
{
$ligne = fgets($fp, 1024); //lecture ligne par ligne

if(substr($ligne, 0, 1) == 'P')
{
echo 'C\'est cette ligne qui contient un P:'.$ligne.'<br>';
}
else
{
echo $ligne.'<br>';
}
}
fclose($fp);
?>
</body>
</html>

puis la classe file

<?php
class File
{
protected $_file = null;
protected $_lines = array();

public function __construct()
{

}

protected function _download()
{
// code PHP pour aller chercher sur un FTP
// sauvegarde du fichier télécharger quelque part en local
$this->_file = 'nom_fichier_enregistré';
}

public function read()
{
if (is_null($this->_file)) {
$this->_download();
}

$file = $this->_file;
// traitement du fichier avec le fopen
foreach ($lines as $line) {
$this->_lines[] = array('date', 'temperature', 'je sais pas');
}
}

public function getLines()
{
return $this->_lines;
}

public function toHtml()
{
$html = '';
foreach ($this->_lines as $line) {
$html .= $line['date'];
}

return $html;
}
}
?>