Pourquoi file_put_contents refuserait-il de travailler pour le code suivant?
$f = file_put_contents("files/r.js", "Some text here");
if ($f) print 1;
else print 0;
Le répertoire /files
est-il chmodé à 777? Parfois, php ne vous permet pas d'accéder aux répertoires s'ils n'ont pas assez de permission. Je ne sais pas sur les erreurs en blanc cependant.
Essayez de voir s'il dispose d'autorisations suffisantes. Sinon, définissez-le sur 777 et essayez-le.
Utilisez-vous le chemin complet sur le système de fichiers ou essayez-vous d'utiliser l'URI? Je pense que cette fonction PHP s'attend à ce que vous donniez le chemin car le fichier se trouve sur le système de fichiers.
Les chemins relatifs devraient bien se passer.
Vous devrez peut-être vous assurer que le fichier existe et que ses autorisations sont définies sur 777. Parfois, j'ai constaté qu'il ne suffisait pas de définir simplement les autorisations de répertoire sur 777, mais que le fichier devait déjà exister.
Nous avons connu cela, nécessitant une solution de contournement (indépendamment de la méthode, des autorisations et de tout autre élément mentionné ici). Lorsque tous les autres correctifs ont échoué, nous avons découvert qu'il pouvait être lié à des restrictions créées par SELinux.
Si vous utilisez Windows, la solution suivante a parfaitement fonctionné sous Windows 10 sous PHP 5.5.38.
Si vous rencontrez ce problème sous Windows/IIS, procédez comme suit:
Les étapes peuvent être légèrement différentes pour différentes versions de Windows. Cela s’applique également à ASP.NET, bien que je pense que les utilisateurs que vous ajoutez sont les utilisateurs du réseau (utilisateurs du RÉSEAU ET OR SERVICE RÉSEAU) ainsi que de l’IUSR.