ShowLinksExtension.php 747 B

12345678910111213141516171819202122232425
  1. <?php
  2. namespace App\Twig\Extension;
  3. use Twig\Extension\AbstractExtension;
  4. use Twig\TwigFilter;
  5. use Twig\TwigFunction;
  6. class ShowLinksExtension extends AbstractExtension
  7. {
  8. public function getFilters(): array
  9. {
  10. return [
  11. // If your filter generates SAFE HTML, you should add a third
  12. // parameter: ['is_safe' => ['html']]
  13. // Reference: https://twig.symfony.com/doc/3.x/advanced.html#automatic-escaping
  14. new TwigFilter('show_links', [$this, 'showLinks']),
  15. ];
  16. }
  17. public function showLinks(string $texte): string
  18. {
  19. return preg_replace('#((https?|ftp)://(\S*?\.\S*?))([\s)\[\]{},;"\':<]|\.\s|$)#i', "<a href=\"$1\" target=\"_blank\">$1</a>$4", $texte);
  20. }
  21. }