Modifier un fichier (Html) ...

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 01:07

Bonjour,
Voila j'aimerai pouvoir modifier des fichiers HTML.

Dans un fichier HTML j'aimerai pouvoir ajouter, après chaque "<img src="quelque chose" " un "alt="autre chose" " sans altérer la balise IMG ?

En faite ajouter apres le src de chaque image un nouvel attribut.

Est ce possible ?
Et comment ?

Je pourrais le faire a la main mais il y a beaucoup d'images dans beaucoup de fichiers HTML. :(

Est ce possible aussi de pouvoir changer le "autre chose", aléatoirement avec du texte différent depuis une liste ?

Merci de vos réponses

Jacques

Eléphant du PHP | 205 Messages

01 avr. 2005, 01:18

Je ne cpmrend pas la logique:
Qu'est ce que tu veux dire par aléatoirement?

Parce que si réellement ton objectif est d'ajouter un alt="qq chose" de façon aléatoire, oui c'est possible avec des expressions régulières...mais je ne vois réellement pas la logique!

Est-ce qq chose de ce genre?

- 5 possibilités pour l'alt (de i=1 jusqu'a 5): texte1, texte2, texte3, texte4, texte5.
- Les possibilités ci-dessus à choisir aléatoirement
- lire un fichier et à chaque <img src="">, y a jouter aléatoirement alt="textei"
Si vous pensez que l'éducation coûte cher, essayez l'ignorance!

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 01:29

Bonsoir ImBrOgLiO,

Oui c'est ce que j'ai essayer d'expliquer ... maladroitement ! :oops:

Je dois ajouter dans chaque balise "IMG" un "alt="quelque chose""

Et ce quelque chose est un texte, de 3 / 4 mots, prie dans une liste.
Je pensais créer, a part, un fichier avec une liste de texte.
Comme tu dis : Texte01, Texte02, Texte03, etc...
Et que le script pioche dans cette liste pour ajouter à la première balise "IMG" : Le "alt="Texte04"".... puis a la seconde balise "IMG" : Le "alt="Texte04"" ... etc ...

J'espere avoir été plus clair cette fois

Merci de ta réponse
Jacques

Eléphant du PHP | 205 Messages

01 avr. 2005, 01:36

Je ne suis pas férue en expressions régulières (y'a t-il un psy dans la salle? :wink: ) mais ça me semble tout à fait jouable. Personnellement je ne voudrais pas t'induire en erreur. La partie aléatoire est relativement aisée mais le reste, j'ai une migraine juste à y penser...
Appel à la communauté!
Si vous pensez que l'éducation coûte cher, essayez l'ignorance!

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 01:39

:D
Ou c'est bien pour cela que je poste mon message dans ce forum.

A la recherche d'un PHPsy :D

Comment prendre aléatoirement un texte dans une liste ?

Eléphant du PHP | 205 Messages

01 avr. 2005, 01:51

Exemple simple avec 3 textes:
<?php
$texte[1]="Blabla";
$texte[2]="Bloblo";
$texte[3]="Blibli";

srand((double)microtime()*1000000);
$i=floor(rand(1,count($texte)));

echo "alt=\"$texte[$i]\" ";
?>
Si vous pensez que l'éducation coûte cher, essayez l'ignorance!

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 02:03

Merci
Ca fonctionne... :)

Je ne connais pas toutes les fonctions utilisées...mais je vais rechercher sur "www.php.net" pour cela.

Bon il faut que je trouve le moyen d'ajouter ces "alt", dans chaque Balise "IMG" :?

Merci et bonne fin de nuit

Jacques.

Eléphant du PHP | 205 Messages

01 avr. 2005, 03:42

La bible des expressions régulières...au cas où...
http://www.expreg.com/
Si vous pensez que l'éducation coûte cher, essayez l'ignorance!

Mammouth du PHP | 859 Messages

01 avr. 2005, 10:11

Avec une expression régulière et l'exemple d'Imbroglio ça pourrait donner ça :
<?php
$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]."'",$texte_d_origine);

echo $nouveau_texte;
?>

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 12:41

Merci a vous deux pour les infos supplémentaires.

flitox, je vais essayer avec le code que tu as donné.

Comment le faire sur un série de fichier (HTML) dans un répertoire ?
Et en automatique ?

Merci en tout cas cela m'avance beaucoup

Jacques.

Mammouth du PHP | 859 Messages

01 avr. 2005, 12:43

sur un fichier HTML ça donnerait ça :
<?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;
?>

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 12:46

Merci flitox

Juste une petite chose

Le alt n'y est pas a l'origine... Donc je peux faire ceci ?

Code : Tout sélectionner

$nouveau_texte = preg_replace("!<img src='(.*?)' !i","<img src='\\1' alt='".$texte[$i]."'",$source);
Merci !

Mammouth du PHP | 859 Messages

01 avr. 2005, 12:53

Oui bien sûr

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 12:53

En faite, après mure reflexion, il me semble qu'il serait mieux de pouvoir ajouter dans toutes les balises <IMG> mon fameux ALT.

Et ce juste après le SRC, car il peut y avoir d'autres attibuts après qu'il faut garder :
BORDER, WIDTH, HEIGHT, ... etc

Donc dire, en gros, apres chaque attribut SRC ajouter l'attribut ALT en laissant le reste.

J'aimerai le faire sur tous les fichiers HTML dans un repertoire.

Pierre Paul
Invité n'ayant pas de compte PHPfrance

01 avr. 2005, 13:08

J'ai essayé le code ... mais cela ne semble pas fonctionner ?

J'ai utilisé le code suivant :

Code : Tout sélectionner

$nouveau_texte = preg_replace("!<img src='(.*?)'!i","<img src='\\1' alt='".$texte[$i]."'",$source);
Il affiche bien la page, avec toutes les images... mais en regardant le sources du document... les ALT n'apparaissent pas ?

J'ai oublié quelque chose ?