Expressions régulières - PHP - Programmation
Marsh Posté le 05-01-2007 à 16:38:18
et faire un str_replace(array("<img src=\"../images/" ), array("<img src=\"http://www.gogo.com/images/" ), $page);
ça serait pas plus simple?
Marsh Posté le 06-01-2007 à 15:41:24
je sais pas du tout. parce qu'en fait, y'aurait aussi les liens à changer, genre
../page1.html
->
http://www.gogo.com/page1.html
remarque que c'est juste
str_replace(array("<a href=\"../" ), array("ya href=\"http://www.gogo.com/" ), $page);
mais en fait, je comprends pas trop ce que ça fait, vais voir la doc ;-)
Marsh Posté le 06-01-2007 à 15:52:17
et pourquoi pas :
str_replace("<img src=\"../images/", "<img src=\"http://www.gogo.com/images/", $page);
?
l'avantage avec les expressions régulières, c'est qu'en une ligne, c'est réglé pour les images et les liens, et que si tu as
<img alt="blabla" src="image.jpg" />
ca prend pas avec str_replace
A moins de faire :
$page = str_replace("\"../images/", "\"http://www.gogo.com/images/", $page);
D'un point de vue performance et optimisation, c'est mieux str_replace ou les expressions régulières ?
Merci en tout cas !
Marsh Posté le 06-01-2007 à 16:40:17
et comme ça ?
Code : |
Marsh Posté le 06-01-2007 à 17:00:44
SatanKoRn a écrit : D'un point de vue performance et optimisation, c'est mieux str_replace ou les expressions régulières ? |
Les expressions régulières sont évidemment plus consommatrices de ressources mémoires et CPU par rapport un str_replace.
Si tu dois utiliser des expressions régulieres utilise de préference des expressions regulieres PCRE (Perl) : ce sont les fonctions PHP qui commencent par preg_*. Les expressions regulieres ereg_* sont des expressions regulieres POSIX : elles sont moins performantes et beaucoup moins fonctionnelles que les expressions regulieres PCRE. C'est bon a savoir
Marsh Posté le 05-01-2007 à 16:12:45
Bonjour,
j'ai un code source dans la variable $page. en fait, je voudrais remplacer les
par
Pour cela, j'utilise cette expression régulière :
Mais ça ne marche pas
Comment ça se fait ?
Merci d'avance pour vos réponses !
---------------
Matt