[Contribution - PHP] 1 visit for delete !



  • Description :
    Ce code PHP lit un fichier *.txt(a vous de definir son nom dans le code PHP) qui se trouve a la même hauteur que le script et le supprime ensuite. Idéale pour faire le 1ere sur le site a un bonus ou un truc du genre et que 1 seul.

    <?php
    $fichier_txt = "tonfichier.txt";
    if(!$r = fopen($fichier_txt,"r")){
    	echo "L'ouverture du fichier a échoué !";
    	exit;
    }
    else{
    	$r = fopen($fichier_txt,"r");
    	while(!feof($r)){
    	$lire = fgets($r, 4096);
    	echo $lire."<br />";
    }
    	fclose($r);
    	unlink($fichier_txt);
    }
    ?>
    
    


  • Le principe est bon mais il y a quand même quelques erreurs :

    • L'affichage du message d'erreur sur toutes les pages sauf la première n'est pas forcément un but recherché
    • Tu fais deux fopen() tandis qu'il suffirait de conserver le résultat du premier
    • Il ne faut pas mettre le second paramètre de fgets (4096), sans quoi les lignes de plus de 4096 caractères seront coupées
      Après, faut voir si un simple :
    <?php
    	$filename = 'machin.txt';
    	if (($buffer = file_get_contents($filename)))
    		echo nl2br($buffer);
    ?>
    ```n'est pas plus simple.


  • Je l'ai fait avec ce que je connaisé :p mais oui c'est beaucoup plus simple avec ton code mais le principe de mon code est de lire le fichier puis de le supprimé pour qu'une seule personne puisse voir le contenu de machin.txt
    Par contre ce code est bizarre même si il marche (sous Visual Basic c'est similaire)

    if(($buffer = file_get_contents($filename)))
    

    Gné ? pourquoi avoir rajouté des ( ) ? moi j'aurais mis comme sa :

    if ($buffer = file_get_contents($filename))
    


  • ça revient au même si tu test normalement (sauf erreur de ma part), c'est surtout histoire d'"encapsuler" ce qu'on test pour mieux le lire.



  • L'habitude de coder en C maintenant =)
    Si tu ne les met pas, tu te paye des Warnings en mode strict.
    C'est pour éviter les erreurs, telles que :

    if ($test = 42 == 42)
    ```(où $test sera égal à 1 à la fin du test)
    au lieu de
    

    if (($test = 42) == 42)


Se connecter pour répondre
 

Il semble que votre connexion ait été perdue, veuillez patienter pendant que nous vous re-connectons.