Vous n'êtes pas identifié(e).
Bonsoir tous,
je me prend la tête sur un bout de code qui ne me retourne 1/4 de ce que je veux, grosso modo l'idée est de lire un fichier trouver une ligne précise et réécrire cette ligne d'une manière différente.
voila le code actuel :
$fd = fopen('index.php',"w+");
fwrite($fd,$new_content);
fclose($fd);
donc à la ligne ou il trouve la balise "</body>" j'écris "texte avant la balise</body>texte après"
si quelqu'un passe par là et vois mon erreur je suis preneur
merci à vous tous.
Hors ligne
Salut,
Tu devrai préciser un peu mieux en donnant des exemples :
cas de différentes lignes d'origine et que doivent-elles devenir :
blobloblo</body>
</body>blobloblo
blobloblo</body>blablabla
Sinon si tu veux simplement remplacer la ligne :
Si tu veux plus sophistiqué, il va falloir passer par une expression régulière.
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
bonjour à toi voila un petit exemple :
html d'origine :
<body>
<p>je suis le </p>
<p>corp de la page</p>
</body>
</html>
donc on se positionne a la balise </body> et on modifie cette ligne pour que le résultat final soit :
<body>
<p>je suis le </p>
<p>corp de la page</p>
blobloblo et blablabla avant la balise</body>
</html>
j'espère avoir été un peut plus clair
Hors ligne
Donc le code donné plus haut doit fonctionner en modifiant le test strpos.
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Comme la doc est notre amie le même code en 6 ligne au lieu de 21 (compatible php5 seulement, mais qui de nos jours est encore en php4 ?) :
file() renvoie directement le contenu du fichier dans un tableau, donc plus besoin de faire le parcours ligne par ligne, et file_put_contents permet d'enregistrer le contenu d'une variable dans un fichier.
Code plus court = moins de possibilité d'erreur.
Par contre je n'ai pas compris l'intérêt du define('index.php') ?
Hors ligne
Oui, file renvoie le fichier complet dans un tableau.
Ce n'est à priori pas le cas mais attention avec de très gros fichiers.
if ( is_int(strpos($line,'</body>')) )
c'est correct mais je trouve plus élégant :
if (strpos($ligne,'</body>') !== false)
$arrayLine[$keyLine] = trim($arrayLine[$keyLine]) . 'blabla' . PHP_EOL;
Heu... là tu mets 'blabla' après </body> non ?
Et le trim n'est pas vraiment nécessaire.
Par contre je n'ai pas compris l'intérêt du define('index.php') ?
Où ça ?
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne