


Raisons pour lesquelles la fonction is_file() ne peut pas remplacer la fonction file_exists()
is_file peut-il vraiment remplacer file_exists ? La réponse est non. Pourquoi? La raison est très simple, is_file a cache
On peut utiliser le code suivant pour le tester :
Le code est le suivant :
<?php $filename = 'test.txt'; if (is_file($filename)) { echo "$filename exists!\n"; } else { echo "$filename no exists!\n"; } sleep(10); if (is_file($filename)) { echo "$filename exists!\n"; } else { echo "$filename no exists!\n"; } ?>
dans Lors de l'exécution du code de test, nous nous assurons que le fichier test.txt existe. Dans le code ci-dessus, la fonction is_file est utilisée pour la première fois pour déterminer si le fichier existe, puis la fonction sleep est appelée pour dormir pendant 10 secondes. Dans ces 10 secondes, nous supprimerons le fichier test.txt . Enfin, regardez le résultat de l’appel de la fonction is_file pour la deuxième fois. Le résultat de sortie est le suivant :
test.txt existe !
test.txt existe !
Eh bien, vous avez bien lu, "test.txt existe !" a été affiché deux fois. Pourquoi ? La raison est que is_file a un cache. Lorsque la fonction is_file est appelée pour la première fois, PHP enregistrera l'attribut (file stat) du fichier Lorsque is_file sera à nouveau appelé, si le nom du fichier est le même que la première fois, il le fera. être retourné directement au cache.
Que diriez-vous de changer is_file en file_exists ? Nous pouvons remplacer la fonction is_file dans le code ci-dessus par la fonction file_exists et utiliser à nouveau la méthode de test ci-dessus pour tester. Les résultats sont les suivants :
test.txt existe !
test.txt n'existe pas !
Lorsque file_exists est appelé pour la deuxième fois, il est renvoyé que le fichier n'existe pas. C'est parce que file_exists. La fonction n'est pas mise en cache et se produira à chaque fois que file_exists est appelé. Accédez au disque pour rechercher si le fichier existe, il ne renverra donc false que la deuxième fois.
Is_file ne peut donc pas être utilisé à la place de file_exists
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les principales raisons pour lesquelles vous ne pouvez pas vous connecter à MySQL en tant que racines sont des problèmes d'autorisation, des erreurs de fichier de configuration, des problèmes de mot de passe incohérents, des problèmes de fichiers de socket ou une interception de pare-feu. La solution comprend: vérifiez si le paramètre Bind-Address dans le fichier de configuration est configuré correctement. Vérifiez si les autorisations de l'utilisateur racine ont été modifiées ou supprimées et réinitialisées. Vérifiez que le mot de passe est précis, y compris les cas et les caractères spéciaux. Vérifiez les paramètres et les chemins d'autorisation du fichier de socket. Vérifiez que le pare-feu bloque les connexions au serveur MySQL.

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).

La récupération des lignes supprimées directement de la base de données est généralement impossible à moins qu'il n'y ait un mécanisme de sauvegarde ou de retour en arrière. Point clé: Rollback de la transaction: Exécutez Rollback avant que la transaction ne s'engage à récupérer les données. Sauvegarde: la sauvegarde régulière de la base de données peut être utilisée pour restaurer rapidement les données. Instantané de la base de données: vous pouvez créer une copie en lecture seule de la base de données et restaurer les données après la suppression des données accidentellement. Utilisez la déclaration de suppression avec prudence: vérifiez soigneusement les conditions pour éviter la suppression accidentelle de données. Utilisez la clause WHERE: Spécifiez explicitement les données à supprimer. Utilisez l'environnement de test: testez avant d'effectuer une opération de suppression.

Centos sera fermé en 2024 parce que sa distribution en amont, Rhel 8, a été fermée. Cette fermeture affectera le système CentOS 8, l'empêchant de continuer à recevoir des mises à jour. Les utilisateurs doivent planifier la migration et les options recommandées incluent CentOS Stream, Almalinux et Rocky Linux pour garder le système en sécurité et stable.

La commande kill dans MySQL échoue parfois en raison du statut spécial du processus et du niveau de signal inapproprié. Les méthodes pour terminer efficacement le processus MySQL comprennent: la confirmation de l'état du processus, en utilisant la commande mysqladmin (recommandée), en utilisant Kill -9 avec prudence, vérification des ressources du système et dépannage approfondi des journaux d'erreur.

Il est impossible d'afficher les mots de passe postgresql directement à partir de Navicat, car Navicat stocke les mots de passe cryptés pour des raisons de sécurité. Pour confirmer le mot de passe, essayez de vous connecter à la base de données; Pour modifier le mot de passe, veuillez utiliser l'interface graphique de PSQL ou NAVICAT; À d'autres fins, vous devez configurer les paramètres de connexion dans le code pour éviter les mots de passe codés en dur. Pour améliorer la sécurité, il est recommandé d'utiliser des mots de passe solides, des modifications périodiques et d'activer l'authentification multi-facteurs.

La clé de l'installation de MySQL est d'élégance pour ajouter le référentiel MySQL officiel. Les étapes spécifiques sont les suivantes: Téléchargez la clé GPG officielle MySQL pour empêcher les attaques de phishing. Ajouter un fichier de référentiel MySQL: RPM -UVH https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Mise à jour du référentiel Cache: Yum Update Installation Mysql: Yum install install install starting starting mysql Service: SystemCTL start start mysqld starger bugo boartup Service mysql Service: SystemCTL start start mysqld starger bugo bo onthing staring Service mysql Service: SystemCTL Start Start MySQLD Set Out Up Boaching Staring Service MySQL Service: SystemCTL Start Start MysQL
