Rechercher : dans
Par :

Expressions régulières et liens relatifs

Dernière réponse le 28 jui 2004 à 09:53:27 Manu, le 27 jui 2004 à 16:59:16 
 Signaler ce message aux modérateurs

Bonjour,
Je cherche à changer en PHP des liens physiques d'un fichier HTML en liens logiques.
Je cherche donc de modifier les chemins absolus en chemins relatifs.
Ces liens qui concernent vers des images JPEG ou GIF.
J'ai réalisé un script, mais il ne me renvoie que la première image que je trouve.


J'ai fait aussi un petit site à appeleer site_web.html pour tester a mettre dans le meme repertoire:

<html>
<head>
<title>site web</title>
</head>
<body>
Voici une premiere image.
<img src="D:\mes_documents\images_favorites\grenouilles\kermit.jpg" align=CENTER>
c'est bon j'en ai mis une. 
<img src="D:\documents_jean-louis\pictures\logo.gif" align=LEFT><br>
et je viens d'en mettre une autre.
<body>
</html>


Et voici le script:

<html>
<head>
<title>test.php: Enregistrement des images</title>
</head>
<body>

<?            
//je cree une fonction pour lire le fichier

function expr_reg_fichier($file_path){

    //ouverture en lecture  et ecriture du fichier
    $fp = fopen($file_path,"r+");

    $page="";

    //tant que l'on atteint pas la fin du fichier
    while (!feof($fp)){ 

	//on parcourt toutes les lignes
        $page .= fgets($fp, 4096); // lecture du contenu de la ligne        
                
		//on isole toutes les expressions qui correspondent aux images
        	if (!eregi("\"(.*)\.jpg\"",$page,$regs)) {
            		if (!eregi("\"(.*)\.jpeg\"",$page,$regs)) {
                    		eregi("\"(.*)\.gif\"",$page,$regs);
                	}
        	}
    }
   fclose($fp);
   return $regs;
}

$images = expr_reg_fichier("./site_web.html");
echo ($images[1]);
echo ($images[2]); 
?>
        
</body>
</html>

Pourquoi le chemin de la 2e image ne s'affiche pas à echo ($images[2]); ?

Si vous pouviez m'avancer ce serait vraiment sympa, et ça m'éviterait d'énerver le chef ;-)
Merci

Meilleures réponses pour « Expressions régulières et liens relatifs » dans :
PHP - Expressions régulières Voir Qu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
[PHP] Transformer une URL en lien hypertexte cliquable VoirGrâce aux expressions régulières, il est possible de transformer en lien hypertexte toute URL de la forme http://URL (ou ftp://URL) ou bien commençant par www. :
Google - Recherche d'une expression exacte VoirLorsque l’on souhaite faire la recherche d’une expression exacte, il suffit de mettre cette expression entre guillemets. Exemple : "animal domestique" référencera uniquement les sites comportant l’expression "animal domestique".
Javascript - L'objet RegExp VoirLes particularités de l'objet RegExp L'objet RegExp est un objet permettant de manipuler des expressions régulières, c'est-à-dire des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, afin de trouver des...
LaTeX - Expressions mathématiques VoirEcriture d'expressions mathématiques LaTeX possède un mode mathématique très développé qui permet l'édition d'équations ou de formules de façon simple et avec un bon rendu. LaTeX gère en effet tout seul la mise en page de ces formules. Il existe...

1

JSS, le 27 jui 2004 à 18:30:22

Je suis pas sur mais bon ... ca commence pas à images[0] ?

bon courage !

JSS.j'ai.bon.là?

Répondre à JSS

2

Manu, le 28 jui 2004 à 09:23:48

Bien essayé, mais images[0] est la totalité du tableau sensée contenir toutes les occurences de l'expression régulière trouvée.
images[1] contient la 1e occurence, images[2] contient la 1e occurence, etc... c'est écrit dans la partie sur ereg() dans la partie PHP de CCM ! ;-)

en fait, j'ai aussi un pb dans images[0], je n'ai que la 1e occurence, entre guillemets...

Répondre à Manu

3

 Elise78, le 28 jui 2004 à 09:53:27

Je ne suis pas sur que ca t'aidera mais le probleme ne semble pas venir de la lecture de ton tableau image mais plutot de la facon dont tu le remplis ou a la limite la facon dont tu lis ton fichier. Ca fait un moment que je n'ai plus fait de PHP alors les details sont loins mais bon on ne pense pas forcement a tout quand on a le nez dans le code lol ...

Bon courage. Cordialement, Elise78

Répondre à Elise78
Collection CommentÇaMarche.net