-1

How do I replace a link between and keep the link from href unchanged?

This is my code:

$str="Lorem Ipsum.<a href='https://test.be/assets/kcfinder/upload/files/certificat_auto.pdf'>https://test.be/assets/kcfinder/upload/files/certificat_auto.pdf</a>Lorem Ipsum ";

$pattern = '/>https:\/\/test.be\/assets\/kcfinder\/upload\/files\/.*\./';
$replacement = '>${1}';

echo preg_replace($pattern, $replacement, $str);

This is the output:

Lorem Ipsum.<a href='https://test.be/assets/kcfinder/upload/files/certificat_auto.pdf'>pdf</a>Lorem Ipsum 

I need the output to be :

Lorem Ipsum.<a href='https://test.be/assets/kcfinder/upload/files/certificat_auto.pdf'>certificat_auto.pdf</a>Lorem Ipsum 

I'm doing something wrong with the replacement, the pattern matches

Andreea Onica
  • 315
  • 5
  • 13
  • With `$3`, you are referencing Group 3, and you have none in your regex. – Wiktor Stribiżew Apr 10 '19 at 06:46
  • 1
    Do you *need* to use regexp here? https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Jeto Apr 10 '19 at 06:49
  • Use preg match to check if your regex pattern is even working at all see regex101.com for a good online tester and debugger – Dev Man Apr 10 '19 at 06:51

1 Answers1

0

You may get some idea from this.

(?<=>)https:\/\/test.be\/assets\/kcfinder\/upload\/files\/[\w\.]*

https://rubular.com/r/b46dQ9G27C4A3A

Abimanyu
  • 495
  • 2
  • 13