DevAngers AFPA
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

php5 ecrire dans un fichier

2 participants

Aller en bas

php5 ecrire dans un fichier Empty php5 ecrire dans un fichier

Message par nathur Ven 22 Oct - 14:35

Salut, j'ai un soucis de fonction pêchée sur le net mais qui logiquement devrait fonctionner ... sauf qu'elle ne fonctionne pas à chaque fois !!! Shocked J'ai du mal à piger...

Cette fct doit vérifier si le chemin et le fichier existent et écrire dedans, sinon elle créée dossiers et fichier et écrit dedans :

public function write($filepath, $texte) {
$txt='';
//recupere les infos du chemin
$tb = pathinfo($filepath);
//si le chemin et le fichier existent
if(file_exists($filepath)) {//ne marche que s'il n'y a pas de repertoire avant le fichier
if(is_file($tb['filename'])) {//ne marche pas du tout
//verifie que le fichier est accessible en écriture
if(is_writable($filepath)) {
//ouverture du fichier en lecture + ecriture avec pointeur à la fin
if($pointeur = fopen($filepath, "a+")) {
//tentative d'ecriture
//$ecrit = ecriture($pointeur,$texte,$tb['basename'],$txt);
$txt .= $ecrit;
}
}
else { //sinon, message d'erreur
echo "ERREUR de droits : " . $tb['basename'] . " n'est pas accessible en écriture.";
}
}
}
else { //si le chemin ou le fichier n'existent pas là ça passe à peu près
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Ven 22 Oct - 14:39

mes soucis viennent des fonctions file_exists, is_dir, is_file , car j'ai fait plein d'essais et quand j'ai mis seulement le nom d'un fichier en chemin,
is_dir($nom_de_fichier.txt) m'a renvoyé true !!!
is_file($nom_de_fichier.txt) ne passe pas, renvoie false !!!
1 fichier n'est pas un dossier ou c'est moi qui débloque Question Question Question
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Ven 22 Oct - 14:48

Ah et aussi cette >bip ! (censuré)< de fct mkdir qui me renvoie un warning (
Warning: mkdir() [function.mkdir]: No such file or directory in ...) mais me créé qd même mon dossier .... j'y comprends rien, est ce que quelqu'un a eu à faire ce genre de fct ?
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par juju49l Ven 22 Oct - 15:20

J'ai pas trop de temps pour chercher, mais j'ai pu trouver ça...
C'est peut etre celle dont tu es partie non?


function write($filepath, $texte) {
if (file_exists($filepath)) {
$tb = pathinfo($filepath);
if(is_writable($filepath)) {
if($pointeur = fopen($filepath, "a")) {
if (fwrite($pointeur, $texte) === FALSE) {
$txt = "Erreur lors l'écriture dans " . $tb['basename'] . "<br>";
exit;
}
else {
$txt = "Ecriture dans " . $tb['basename'] . " réussie.";
}
}
}
else {
echo "ERREUR de droits : " . $tb['basename'] . " n'est pas accessible en écriture.";
}
fclose($pointeur);
}
else {
$tb = pathinfo($filepath);
$ch ='';

if(preg_match("[php|txt|inc|asp|htm|html|log]",$tb['extension'])) {
if(isset($tb['dirname'])) {
$tb_dir = explode("/", $tb['dirname']);
}
else {
$tb_dir = 0;
$ch .= $tb['basename'];
}
}
else {
return ("Le format : " . $tb['extension'] . " n'est pas accepté");
exit;
}
if(is_array($tb_dir)) {
$txt ='';
for($i=0;$i<count($tb_dir);$i++) {
$dir = $ch . $tb_dir[$i];
if(!is_dir($dir)) {
if(mkdir($dir, 700)) {
$txt .= 'creation : ' . $dir . '<br>';
$ch .= $tb_dir[$i].'/';
}
}
else {
$txt .= 'Dossier existant : ' . $dir . '<br>';
$ch .= $tb_dir[$i].'/';
}
}
$ch .= $tb['basename'];
if(!file_exists($ch)) {
if ($pointeur = fopen($ch, "w+")) {
$txt .= 'creation : ' . $ch;
if (fwrite($pointeur, $texte) === FALSE) {
$txt .= "Erreur lors l'écriture dans " . $tb['basename'] . "<br>";
exit;
}
else {
$txt .= "<br>Ecriture dans " . $tb['basename'] . " réussie.";
}
fclose($pointeur);
}
}
else {
if ($pointeur = fopen($ch, "a")) {
$txt .= 'creation : ' . $ch;
if (fwrite($pointeur, $texte) === FALSE) {
$txt .= "Erreur lors l'écriture dans " . $tb['basename'] . "<br>";
exit;
}
else {
$txt .= "<br>Ecriture dans " . $tb['basename'] . " réussie.";
}
fclose($pointeur);
}
}
}
else {
if(!file_exists($ch)) {
if (fopen($ch, "w+")) {
$txt .= 'creation : ' . $ch;
if (fwrite($pointeur, $texte) === FALSE) {
$txt .= "Erreur lors l'écriture dans " . $tb['basename'] . "<br>";
exit;
}
else {
$txt .= "<br>Ecriture dans " . $tb['basename'] . " réussie.";
}
fclose($pointeur);
}
}
else {
if ($pointeur = fopen($ch, "w+")) {
$txt .= 'creation : ' . $ch;
if (fwrite($pointeur, $texte) === FALSE) {
$txt .= "Erreur lors l'écriture dans " . $tb['basename'] . "<br>";
exit;
}
else {
$txt .= "<br>Ecriture dans " . $tb['basename'] . " réussie.";
}
fclose($pointeur);
}
}
}
}
return $txt;
}
juju49l
juju49l
OK ++
OK ++

Messages : 519
Date d'inscription : 08/10/2010
Age : 40
Localisation : DTC

Spécialités
Expert en: Bavardage avec Seeverlight
Maître en: Pas encore cette prétention...
Débutant en: DotNet, Web, Base de données, Modélisation, RPG IV FREE

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Ven 22 Oct - 18:13

oui c'est celle ci
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par juju49l Ven 22 Oct - 18:27

Désolé lol perdu...
Beh je regarderais ça, sauf si tu a déjà résolu ton soucis
juju49l
juju49l
OK ++
OK ++

Messages : 519
Date d'inscription : 08/10/2010
Age : 40
Localisation : DTC

Spécialités
Expert en: Bavardage avec Seeverlight
Maître en: Pas encore cette prétention...
Débutant en: DotNet, Web, Base de données, Modélisation, RPG IV FREE

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Lun 25 Oct - 17:18

ça y est j'ai tout décortiqué, il y avait une histoire d'accolade mal placée entre autres... désolée ! et je l'ai simplifiée !
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par juju49l Lun 25 Oct - 17:24

oui j'ai vu ^^
juju49l
juju49l
OK ++
OK ++

Messages : 519
Date d'inscription : 08/10/2010
Age : 40
Localisation : DTC

Spécialités
Expert en: Bavardage avec Seeverlight
Maître en: Pas encore cette prétention...
Débutant en: DotNet, Web, Base de données, Modélisation, RPG IV FREE

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Lun 25 Oct - 17:46

tu veux la version définitive ? elle est simplifiée mais longue quand même !!!
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par juju49l Lun 25 Oct - 18:04

ah pardon j'avais pas tilter, oui je veux bien , même si j'en ai pas besoin dans l'immédiat ça peu servir...
juju49l
juju49l
OK ++
OK ++

Messages : 519
Date d'inscription : 08/10/2010
Age : 40
Localisation : DTC

Spécialités
Expert en: Bavardage avec Seeverlight
Maître en: Pas encore cette prétention...
Débutant en: DotNet, Web, Base de données, Modélisation, RPG IV FREE

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Lun 25 Oct - 18:48

ok dès que j'ai 5 min... je la mettrais dans la catégorie "présentation"...
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par nathur Mar 26 Oct - 18:15

Bon ça y est, j'ai compris pourquoi la fonction mkdir me mettait 1 warning :
j'avais appelé la fct de cette façon :
$chemin = /test/test.txt;
fct($chemin,$texte);
et c'est dans $chemin qu'il y a 1 soucis : le 1er /
car je fais un explode('/',$chemin) qui découpe les morceaux du chemin et qui renvoie un tableau dans lequel en position 0 il y a : rien
voila voila...
nathur
nathur
Hey mais mec !
Hey mais mec !

Messages : 414
Date d'inscription : 08/10/2010
Age : 45
Localisation : La jub !

Spécialités
Expert en:
Maître en:
Débutant en: Tout ! mais cherche à s'améliorer ...

Revenir en haut Aller en bas

php5 ecrire dans un fichier Empty Re: php5 ecrire dans un fichier

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum