#1 Le 17/02/2020, à 18:17
- Nuliel
[Résolu] fonction file en php
Bonjour,
Je suis en train de m'entraîner sur php.
Je ne comprends pas pourquoi la fonction file qui récupère le contenu d'un fichier ne fonctionne pas dans mon cas.
Voici le code fonctionnel:
Le fichier functions.php
<?php
function lecture() {
if (!file_exists('compteur.txt'))
{
return "Fichier introuvable";
};
$monfichier = fopen('compteur.txt','r');
$nb = fgets($monfichier);
fclose($monfichier);
return $nb;
};
function increment() {
$nb = lecture();
if ($nb === "Fichier introuvable") {
$nb = "0";
};
$monfichier = fopen('compteur.txt','w');
$a = (int)$nb + 1;
fwrite($monfichier, $a);
fclose($monfichier);
};
?>
Le fichier index.php
<?php require 'functions.php' ?>
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>Compteur de vues</h1>
<p>Cette page compte le nombre de vues</p>
<?= lecture()?>
</body>
<?php increment()?>
</html>
Le fichier compteur.txt contient le nombre de fois où la page index.php a été chargée.
Là ça fonctionne vu que j'ai utilisé fgets à la place de file dans la fonction lecture() mais pourquoi avec file cela ne fonctionne pas?
A la base j'avais fait ça
function lecture() {
if (!file_exists('compteur.txt'))
{
return "Fichier introuvable";
};
$monfichier = fopen('compteur.txt','r');
$nb = file($monfichier);
fclose($monfichier);
return $nb[0];
};
mais cela ne fonctionne pas.
Des idées?
Et si vous avez des conseils pour que le code que j'ai produit soit plus propre/lisible... n'hésitez pas
Merci
Dernière modification par Nuliel (Le 17/02/2020, à 20:58)
Hors ligne
#2 Le 17/02/2020, à 19:20
- nany
Re : [Résolu] fonction file en php
Bonjour,
function lecture() { if (!file_exists('compteur.txt')) { return "Fichier introuvable"; }; $monfichier = fopen('compteur.txt','r'); $nb = file($monfichier); fclose($monfichier); return $nb[0]; };
function lecture() {
if (!file_exists('compteur.txt'))
{
return "Fichier introuvable";
};
$nb = file_get_contents('compteur.txt');
return $nb;
};
file retourne un tableau.
file_get_contents retourne du texte.
fopen crée une ressource.
Dernière modification par nany (Le 17/02/2020, à 19:21)
Hors ligne
#3 Le 17/02/2020, à 20:46
- Nuliel
Re : [Résolu] fonction file en php
file retourne un tableau.
file_get_contents retourne du texte.
fopen crée une ressource.
Oui mais
- en utilisant file, j'avais mis return $nb[0] donc normalement je devais récupérer le nombre
- avec file_get_contents je n'ai pas non plus de résultat
Hors ligne
#4 Le 17/02/2020, à 20:52
- nany
Re : [Résolu] fonction file en php
$monfichier = fopen('compteur.txt','r');
$nb = file($monfichier);
$monfichier est une ressource, file ne peut ouvrir un fichier à partir d’une ressource.
Hors ligne
#5 Le 17/02/2020, à 20:57
- Nuliel
Re : [Résolu] fonction file en php
Ah j'avais pas compris, ça fonctionne avec file maintenant aussi.
Merci beaucoup! Et c'est bien plus court!
Dernière modification par Nuliel (Le 17/02/2020, à 20:57)
Hors ligne