Page 1 sur 2

Modifier un fichier (Html) ...

Posté : 01 avr. 2005, 01:07
par Pierre Paul
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

Posté : 01 avr. 2005, 01:18
par ImBrOgLiO
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"

Posté : 01 avr. 2005, 01:29
par Pierre Paul
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

Posté : 01 avr. 2005, 01:36
par ImBrOgLiO
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é!

Posté : 01 avr. 2005, 01:39
par Pierre Paul
: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 ?

Posté : 01 avr. 2005, 01:51
par ImBrOgLiO
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]\" ";
?>

Posté : 01 avr. 2005, 02:03
par Pierre Paul
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.

Posté : 01 avr. 2005, 03:42
par ImBrOgLiO
La bible des expressions régulières...au cas où...
http://www.expreg.com/

Posté : 01 avr. 2005, 10:11
par flitox
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;
?>

Posté : 01 avr. 2005, 12:41
par Pierre Paul
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.

Posté : 01 avr. 2005, 12:43
par flitox
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;
?>

Posté : 01 avr. 2005, 12:46
par Pierre Paul
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 !

Posté : 01 avr. 2005, 12:53
par flitox
Oui bien sûr

Posté : 01 avr. 2005, 12:53
par Pierre Paul
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.

Posté : 01 avr. 2005, 13:08
par Pierre Paul
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 ?