Bonjour,

Je ne comprend pas pourquoi mon regex (qui ne remplace les liens que dans meme repertoire, pas ceux commençant par # ou par http) enlève le premier caractère :
01.php devient 1.php et 02.php devient 2.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$texte = '
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce  nec ante euismod, luctus nunc quis, bibendum ante.</p>
<p><a href="https://www.google.com" target="_blank">lien externe 1</a></p>
<p>Avoir une <a href="#ancre01">ancre 1</a></p>
<p><a href="01.php">lien dans meme repertoire 1</a></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec ante euismod, luctus nunc quis, bibendum ante.</p>
<p><a href="02.php">lien dans meme repertoire 2</a></p>
<p>Avoir une <a href="#ancre02">ancre 2</a></p>
<p><a href="https://www.google.com" target="_blank">lien externe 2</a></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce  nec ante euismod, luctus nunc quis, bibendum ante.</p>
';

$pattern = Array('~href="[^http|#]~'); // [^https|#]
 
$replacement = Array('href="https://www.mon-site.com/');

$output = preg_replace($pattern, $replacement, $texte);

echo $output;
Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec ante euismod, luctus nunc quis, bibendum ante.</p> <p><a href="https://www.google.com" target="_blank">lien externe 1</a></p>
<p>Avoir une <a href="#ancre01">ancre 1</a></p>
<p><a href="https://www.mon-site.com/1.php">lien dans meme repertoire 1</a></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec ante euismod, luctus nunc quis, bibendum ante.</p>
<p><a href="https://www.mon-site.com/2.php">lien dans meme repertoire 2</a></p>
<p>Avoir une <a href="#ancre02">ancre 2</a></p>
<p><a href="https://www.google.com" target="_blank">lien externe 2</a></p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec ante euismod, luctus nunc quis, bibendum ante.</p>
Merci d'avance à tous ceux qui prendront du temps pour m'aider ....