Probléme avec fwrite

Résolu
karimfellah Messages postés 30 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 15 janvier 2010 - 12 nov. 2009 à 12:11
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 16 nov. 2009 à 20:33
Bonjour,
j'ai un probleme avec fwrite();

je suis entrain d'organiser un fichier css. Voila le code:

//1)
$fichier_css=fopen(".........","r+");
$str1=fread($fichier_css,filesize("...."));
$x=str_replace(";",";\n",$str1);
$fic=fopen("......","w+");
fwrite($fic,$x);

//2)
$x1=str_replace("{","{\n",$str1);
$fic1=fopen("......","w+");
fwrite($fic1,$x1);
.
.3)
.
Bon ca marche mais seulement la premiére modification 1), toutes les autres modification sont ignorés
je ne sais pas pourquoi
Si vous avez une idée merci de m'aider.

3 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 nov. 2009 à 20:33
OULA !!!

C'est bien ce que je craignais, ne le prends pas mal mais ton code est assez bordélique

Avant toute chose : SIMPLIFIE !!
Tu ouvres 4 fois le même fichier (2 fois pour le second), à quoi bon ? Une seule ouverture suffit.

1- Ouverture et lecture du fichier (fopen/fread ou plus simplement file_get_contents())
2- Traitement de la chaîne (str_replace() que tu peux également utiliser avec des tableaux : 1 pour les occurrences à trouver, l'autre contenant les chaînes de remplacement)
3- enregistrement du fichier (fwrite ou file_put_contents)

En faisant ça ton code devrait pouvoir tenir sur 10 lignes, ... et être bien plus lisible.


Cordialement,


Kohntark -
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
12 nov. 2009 à 21:00
Salut,

Le nom des fichiers est secret ??
Il serait bien que tu les mettes car le pb peut venir de là.
2, 3 mots sur le but recherché seraient également appréciable.


Cordialement,


Kohntark -
0
karimfellah Messages postés 30 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 15 janvier 2010
16 nov. 2009 à 10:51
Bonjour,
Pas du tout les nom des fichiers ne sont pas secrés
mais j'ai fait de facon pour aller plus vite quoi, Vous avez raison voila tout le code
mais le probleme que la fonction fwrite marche mais 1 fois:


$fichier_css= fopen("fichier_telecharger/output/fichier.css","r+");
$str1= fread ($fichier_css, filesize ("fichier_telecharger/output/fichier.css"));
$x= str_replace(";",";\n" ,$str1);
$fic= fopen("fichier_telecharger/output/fichier.css","w+");
fwrite ($fic, $x);

$x1= str_replace("}","\n}",$str1);
$fic1= fopen("fichier_telecharger/output/fichier.css","w+");
fwrite ($fic1, $x1);

$x2= str_replace(".","\n\n.", $str1);
$fic2= fopen("fichier_telecharger/output/fichier.css","w+");
fwrite ($fic2, $x2);

//modification du fichier introduit par l'utilisateur

$x3= str_replace("<head>","<head>\n <link rel="stylesheet" type="text/css" media="all" href="fichier.css"/>",$str);
$fic3= fopen("fichier_telecharger/".$fichier, "w+");
fwrite($fic3,$x3);

$replace="";
$x4= preg_replace($expression,$replace,$str);
$fic3= fopen("fichier_telecharger/".$fichier, "w+");
fwrite($fic4,$x4);

fclose ($fic1);
fclose ($fic2);
fclose ($fic3);
fclose ($handle);
}
Bonne journée
0
Rejoignez-nous