Jean-Francois Ortolo
2007-03-20 22:29:17 UTC
Bonjour
Pour une assoc, je suis bénévole.
Je suis en train de modifier un site dont les urls comportent des
espaces ( entre autre ), donc j'ai fait deux script PHP, le premier a
modifié les noms des sous-répertoires et des fichiers ( espace -->
souligné et autre babioles de lettres accentuées ), le second est
destiné à lire tous les fichiers *.htm ( pages HTML ) d'un répertoire,
en sélectionnant les ligne comportant des balises comportant des urls (
telles que <form, <img, ou <a href= ), le problème étant, sachant
l'attribut de la balise correspondante, précédant l'url à modifier, à
extraire cette url exactement, ainsi que le contenu qui précède, et le
contenu qui suit ( ces deux contenus doivent rester inchangés ).
Ensuite je modifie l'url à ad hoc, y compris pour la rendre relative
( faut encore voir comment ), puis je recompose la ligne complète
modifiée , à écrire dans un fichier temporaire.
Evidemment, les lignes ne comportant pas ces balises, sont réécrites
telles quelles dans le fichier temporaire.
Après chaque lecture/écriture de chaque page HTML/fichier temporaire,
je renomme le fichiee temporaire dans le nom de la page HTML, qui est
ainsi traduite ad hoc, pour que son contenu soit compatible avec les
noms modifiés des fichiers.
Je reconnais qu'il faudrait pour bien faire, vérifier au fur et à
mesure que les pages HTML sont parsées comme ça, que les fichiers déjà
renommés, existent bien sur l'arborescence de fichiers, sinon je
risquerais de traduire bêtement une url externe au site. ( On ne sait
jamais ).
Donc, voilà mon problème: Etant donné une ligne dans un variable, et
un pattern donné, comment extraire le contenu qui suit le pattern dans
la ligne, ( le contenu est théoriquement entre quotes " " mais... :( ),
puis extraire ce qui précède le contenu dans la ligne, ce qui le suit,
de façon à être en mesure de recomposer la ligne entière, après
modification du contenu ?
Je suppose qu'il existe des fonctions de traitement de variables
chaînes, en PHP, qui répondent à mes besoins, mais lesquelles ?
Merci beaucoup de vos réponses.
Jean-François Ortolo
PS Evidemment, le procédé de traduction est le même, pour le premier
script et le second script, ceci pour assurer la compatibilité entre les
noms des fichiers, et les urls contenues dans les fichiers.
Pour une assoc, je suis bénévole.
Je suis en train de modifier un site dont les urls comportent des
espaces ( entre autre ), donc j'ai fait deux script PHP, le premier a
modifié les noms des sous-répertoires et des fichiers ( espace -->
souligné et autre babioles de lettres accentuées ), le second est
destiné à lire tous les fichiers *.htm ( pages HTML ) d'un répertoire,
en sélectionnant les ligne comportant des balises comportant des urls (
telles que <form, <img, ou <a href= ), le problème étant, sachant
l'attribut de la balise correspondante, précédant l'url à modifier, à
extraire cette url exactement, ainsi que le contenu qui précède, et le
contenu qui suit ( ces deux contenus doivent rester inchangés ).
Ensuite je modifie l'url à ad hoc, y compris pour la rendre relative
( faut encore voir comment ), puis je recompose la ligne complète
modifiée , à écrire dans un fichier temporaire.
Evidemment, les lignes ne comportant pas ces balises, sont réécrites
telles quelles dans le fichier temporaire.
Après chaque lecture/écriture de chaque page HTML/fichier temporaire,
je renomme le fichiee temporaire dans le nom de la page HTML, qui est
ainsi traduite ad hoc, pour que son contenu soit compatible avec les
noms modifiés des fichiers.
Je reconnais qu'il faudrait pour bien faire, vérifier au fur et à
mesure que les pages HTML sont parsées comme ça, que les fichiers déjà
renommés, existent bien sur l'arborescence de fichiers, sinon je
risquerais de traduire bêtement une url externe au site. ( On ne sait
jamais ).
Donc, voilà mon problème: Etant donné une ligne dans un variable, et
un pattern donné, comment extraire le contenu qui suit le pattern dans
la ligne, ( le contenu est théoriquement entre quotes " " mais... :( ),
puis extraire ce qui précède le contenu dans la ligne, ce qui le suit,
de façon à être en mesure de recomposer la ligne entière, après
modification du contenu ?
Je suppose qu'il existe des fonctions de traitement de variables
chaînes, en PHP, qui répondent à mes besoins, mais lesquelles ?
Merci beaucoup de vos réponses.
Jean-François Ortolo
PS Evidemment, le procédé de traduction est le même, pour le premier
script et le second script, ceci pour assurer la compatibilité entre les
noms des fichiers, et les urls contenues dans les fichiers.
--
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux:
http://www.ortolojf-courses.com
Visitez mon site gratuit donnant des Statistiques
et des Historiques Graphiques sur les Courses de Chevaux:
http://www.ortolojf-courses.com