php5 ecrire dans un fichier
2 participants
DevAngers AFPA :: Php :: Langage
Page 1 sur 1
php5 ecrire dans un fichier
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 !!! 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
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- 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 ...
Re: php5 ecrire dans un fichier
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
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
nathur- 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 ...
Re: php5 ecrire dans un fichier
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 ?
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- 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 ...
Re: php5 ecrire dans un fichier
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;
}
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- 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
Re: php5 ecrire dans un fichier
oui c'est celle ci
nathur- 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 ...
Re: php5 ecrire dans un fichier
Désolé lol perdu...
Beh je regarderais ça, sauf si tu a déjà résolu ton soucis
Beh je regarderais ça, sauf si tu a déjà résolu ton soucis
juju49l- 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
Re: php5 ecrire dans un fichier
ç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- 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 ...
Re: php5 ecrire dans un fichier
oui j'ai vu ^^
juju49l- 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
Re: php5 ecrire dans un fichier
tu veux la version définitive ? elle est simplifiée mais longue quand même !!!
nathur- 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 ...
Re: php5 ecrire dans un fichier
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- 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
Re: php5 ecrire dans un fichier
ok dès que j'ai 5 min... je la mettrais dans la catégorie "présentation"...
nathur- 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 ...
Re: php5 ecrire dans un fichier
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...
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- 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 ...
Sujets similaires
» fonction pour ecrire dans 1 fichier (et le créer si besoin)
» Module Java dans du C#
» Mvc : trouver une fonction dans ce ... merdier !
» Quoi dire dans un cévé?
» Module Java dans du C#
» Mvc : trouver une fonction dans ce ... merdier !
» Quoi dire dans un cévé?
DevAngers AFPA :: Php :: Langage
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|