ftp récupère fichier texte d'un ftp transfert ve mon serveur

maïa
Invité n'ayant pas de compte PHPfrance

02 févr. 2007, 20:47

bonjour à vous,
premier message,

j'ai à ma disposition un fichier texte .aff (je ne connaissais pas)
je veux récupérer le contenu et le copier sur un autre serveur

la connexion se passe bien le transfert plante à 80% voir plus

je vous joint les fonctions
la premières fonction insère les éléments dans une base de données
la seconde récupère et liste les lignes du fichier texte
function insere_biens($r)
{
	
	$origine	= array("²","é","è","à","'");
	$code		= array("²","é","è","à","\'");
	$d			= utf8_encode($r[9]);
	$d			= str_replace($origine,$code,$d);
	$idc 		= connect_bd();
	$req 		= "INSERT INTO cbi_biens ";
	$req		.= "(type_transaction,type_biens,reference,numero_mandat,cp,ville,prix_mandat_fr,prix_mandat_euro,secteur,";
	$req		.= "nombre_pieces,nombre_chambres,surface_habitable,surface_terrain,niveaux,etage,annee_construction,";
	$req		.= "jardin,digicode,balcon,terrasse,cave,ascenceur,garage,parking,";
	$req		.= "chauffage,nombre_bains,nombre_wc,orientation,date_modification,description,exclusivite,stationnement) ";
	$req		.= "VALUES ('$r[0]','$r[1]','$r[2]','$r[3]','$r[4]','$r[5]',$r[6],$r[7],'$r[8]',";
	$req		.= "'$r[10]','$r[11]','$r[12]','$r[13]','$r[14]','$r[15]','$r[16]',";
	$req		.= "'$r[17]','$r[18]','$r[20]','$r[21]','$r[22]','$r[23]','$r[24]','$r[25]',";
	$req		.= "'$r[26]','$r[27]','$r[28]','$r[29]','$r[30]','$d','$r[33]','$r[35]')";
	$w			= "<div class=\"texte_ok\">" . $r[0] . " - " . $r[1] . " - " . $r[2] . " - " . $r[3] . " - " . $r[4] . " - " . $r[5] . "</div>";
	$r 			= query($req);
	return $w;
}



function dowload_images()
{
	$r = connect_ftp();
	ftp_chdir($r, "Photos");
   	$liste = ftp_nlist($r,"");
   	$n = count($liste);
   	$liste_images = "";
   	
   	for($i=0; $i<$n; $i++)
   	{
   		$nom_local = substr($liste[$i],15);
   		$lien_local = "../images/DATA/".$nom_local;
   		$file_open = fopen($lien_local,"wb");
   		if(ftp_fget($r, $file_open, $liste[$i], FTP_BINARY)){ $liste_images .= "<div class=\"texte_ok\">- " . $liste[$i] . "</div>";}
   		else{ $liste_images .= "<div class=\"texte_no\">- " . $liste[$i] . " -</div>";}
   	}
   	return $liste_images;
}

par avance merci,
et désolé si j'enfreinds quelques règles
je m'efforcerai d'y remédier

Eléphant du PHP | 96 Messages

02 févr. 2007, 20:54

Je sait pas si je vais te raconter une bourde mais tu n'est pas obliger de préciser les insert !

Fait seulement ca :
INSERT INTO ta-table values ('$r[0]', '$r[1]',.............................
ces variables seront insérer dans l'ordre que tu décide par rapport a ce code donc inutile de précisé le nom des champ...!

maïa
Invité n'ayant pas de compte PHPfrance

02 févr. 2007, 21:15

tu as raison, mais je crois qu'il faut insérer une valeur dans tous les champs de la table, ce qui ne sera pas le cas.

je pense que cela vient du de ma connexion ftp,
est ce que le ftp est sur en php ou existe t il d'autre solution de tranfert, j'ai entendu parler de socket (?)( kindy)

merci de ta réponse

Eléphant du PHP | 96 Messages

02 févr. 2007, 21:18

Non, si tu n'a aucune valeur a insérer, tu peut faire comme ceci :
INSERT INTO ta-table values ('', '$r[1]',........ !
Enfin,cela n'a aucun rapport avec ta question initiale et je n'en ai pas la réponse :(
Modifié en dernier par Brice83 le 02 févr. 2007, 21:21, modifié 1 fois.

maïa
Invité n'ayant pas de compte PHPfrance

02 févr. 2007, 21:21

mais je ne savais pas merci :wink:

maïa
Invité n'ayant pas de compte PHPfrance

03 févr. 2007, 00:10

le pb semble venir du ftp_get

ViPHP
ViPHP | 1961 Messages

03 févr. 2007, 00:27

Bonsoir,
le pb semble venir du ftp_get
ftp_get() c'est ce que devrais utiliser, mais tu utilises ftp_fget().

Le premier (ftp_get()) copie le fichier directement de la machine distante dans la machine locale sans que tu ais besoin de gérer le "handle" du fichier local.
Le second (ftp_fget()) demande une manipulation (c'est toi qui dois gérer l'écriture locale).
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

maïa
Invité n'ayant pas de compte PHPfrance

04 févr. 2007, 00:28

cela ne fonctionne pas non plus avec ftp_get que j'utilisai déjà dans la fonction suivante et qui réagit de la même manière ;

function ftp_biens()
{
   	$w = "";
   	$r = connect_ftp();
   	echo "get pas encore";
   	if(ftp_get($r,"liste_biens.aff","Perso/cbi78-p.aff",FTP_BINARY))
   	{
   		echo "get ok";
   		$liste_biens = file ("http://idc.lautre...fichier.aff");
		$biens = count($liste_biens);
   		supprime_biens();
   		
  		for($i=0; $i<$biens; $i++)
		{
			$bien = $liste_biens[$i];
			$detail_bien = explode(";", $bien);		
			$w .= insere_biens($detail_bien);
		}
   	}
   	else $w = "<div class=\"texte_ok\">&Eacute;chec. Veuillez essayer plus tard.</div>";
   	
	return $w;
	ftp_close($r);
}