Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/02/2020, à 18:17

Naziel

[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 wink

Merci

Dernière modification par Naziel (Le 17/02/2020, à 20:58)


[ poster correctement un retour de commande ] [ poster correctement une photo ]
Nouvel adhérent FDN
thinkpad x220, Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne

#2 Le 17/02/2020, à 19:20

nany

Re : [Résolu] fonction file en php

Bonjour,

Naziel a écrit :
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)


Le mot de passe sudo ne s'affiche pas
Comment bien utiliser les balises BBcode
LIBRARIES ARE NOT BOOK-STORES! − Une souris, des souris. Un souci, des soucis. Une énigme résolue, un problème résolu.
J’ai forké le compteur-couche-tard.

Hors ligne

#3 Le 17/02/2020, à 20:46

Naziel

Re : [Résolu] fonction file en php

nany a écrit :

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


[ poster correctement un retour de commande ] [ poster correctement une photo ]
Nouvel adhérent FDN
thinkpad x220, Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

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.


Le mot de passe sudo ne s'affiche pas
Comment bien utiliser les balises BBcode
LIBRARIES ARE NOT BOOK-STORES! − Une souris, des souris. Un souci, des soucis. Une énigme résolue, un problème résolu.
J’ai forké le compteur-couche-tard.

Hors ligne

#5 Le 17/02/2020, à 20:57

Naziel

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 Naziel (Le 17/02/2020, à 20:57)


[ poster correctement un retour de commande ] [ poster correctement une photo ]
Nouvel adhérent FDN
thinkpad x220, Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Pour reprendre le contrôle des semences: https://kokopelli-semences.fr/fr/

Hors ligne