Modifier un fichier (Html) ...

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 13:18

Bon j'ai trouvé l'erreur...

En faite le SRC etait entouré de double quote " et non pas de simple quote '

Comment puis je faire pour enregistrer dans ce même fichier les modifs ?

Pierre Paul
Invité n'ayant pas de compte PHPfrance

02 avr. 2005, 11:37

:(

Je n'y arrive toujours pas !

D'un côté j'arrive à modifier ma balise IMG

Avec le code de flitox :

Code : Tout sélectionner

<?php $source = @file_get_contents("monfichier.html"); $texte[1]="Blabla"; $texte[2]="Bloblo"; $texte[3]="Blibli"; srand((double)microtime()*1000000); $i=floor(rand(1,count($texte))); $nouveau_texte = preg_replace("!<img src='(.*?)' alt='(.?*)'!i","<img src='\\1' alt='".$texte[$i]."'",$source); echo $nouveau_texte; ?>
Ca affiche bien à l'écran les modifs (mais ne modifie pas le fichier)

Et d'un autre j'arrive bien a modifier un fichier grâce à un script de "compteur" trouver sur Internet :

Code : Tout sélectionner

// Instruction 1 $fp = fopen ("compteur.txt", "r+"); // Instruction 2 $nb_visites = fgets ($fp, 11); // Instruction 3 $nb_visites = $nb_visites + 1; // Instruction 4 fseek ($fp, 0); // Instruction 5 fputs ($fp, $nb_visites); // Instrcution 6 fclose ($fp); // Instrcution 7 echo 'Ce site compte '.$nb_visites.' visiteurs !';
Mais il ne change que le début du fichier...
J'ai tout essayé pour arriver à les réunir ...

Pourriez vous me donner un coup de main SVP !

Jacques.

Mammouth du PHP | 859 Messages

02 avr. 2005, 12:52

Dans ton compteur tu modifies un fichier texte alors que là tu veux modifier un fichier html et malheureusement je crains que ça ne soit pas possible sauf information contraire.

Pierre Paul
Invité n'ayant pas de compte PHPfrance

02 avr. 2005, 12:59

flitox,

Je n'avais pas vu ta réponse avant de poster mon nouveau "post".

Oui tu avais raison.

J'ai résolu ce probleme... mais comme tu peux le voir, sur mon nouveau poste, j'ai un autre problème.

Merci pour tout

Jacques

ViPHP
ViPHP | 1380 Messages

02 avr. 2005, 18:37

Si aucune de tes balises ne contient de ALT, ceci devrait convenir, sinon il y aura un petit aménagement de code à faire.
$source=<<<TXT
texte<img src="image1.png" class="class1" /> texte texte <img id="id2" src='image2.png' /> texte texte <img src="image3.png" />
TXT
;

$texte[1]="Blabla";
$texte[2]="Bloblo";
$texte[3]="Blibli";

// si tu veux le même alt, choisi au hasard, dans chaque <img />
$i = rand(1, count($texte));

$nouveau_texte = preg_replace("#(<img.*?)(src=[^>]*)#si", "$1 alt=\"$texte[$i]\" $2", $source);
echo htmlentities($nouveau_texte),'<br />';

// si tu veux un alt différent dans chaque <img />
function mon_remplace_alt($captures){
  global $texte;
  $i = rand(1, count($texte));
  $alt = ' alt="'.$texte[$i].'"';
  return $captures[1].$alt.$captures[2];
}

$nouveau_texte = preg_replace_callback("#(<img.*?)(src=[^>]*)#si", "mon_remplace_alt", $source);
echo htmlentities($nouveau_texte);
ripat

Pierre Paul
Invité n'ayant pas de compte PHPfrance

02 avr. 2005, 20:50

Ripat,
Je te remercie pour ton code.
C'est exactement ce que je recherchais

Merci
Bonne soirée à vous tous
Jacques.