N'hésites pas à utiliser la doc car il y a toujours des exemples très pratiques :
https://www.php.net/url_encode
Par ailleurs, mon conseil serait plutôt de changer le nom de fichier au moment de son upload pour retirer immédiatement tous les caractères spéciaux et ainsi éviter les soucis.
Voilà la fonction que j'utilise pour créer un "slug" c'est à dire une chaine de caractère qui ne posera pas de problème dans une url (sans espaces, ni accents, ni caractères spéciaux) :
<?php
$string = "Fichier étonnant ça alors !!!";
$slug = trim(\Transliterator::createFromRules(':: Any-Latin;:: NFD;:: [:Nonspacing Mark:] Remove;:: NFC;:: [:Punctuation:] Remove;:: Lower();[:Separator:] > \'-\''
)->transliterate( $string ), '-');
var_dump($slug); // fichier-etonnant-ca-alors
N'hésites pas à utiliser la doc car il y a toujours des exemples très pratiques :
https://www.php.net/url_encode
Par ailleurs, mon conseil serait plutôt de changer le nom de fichier au moment de son upload pour retirer immédiatement tous les caractères spéciaux et ainsi éviter les soucis.
Voilà la fonction que j'utilise pour créer un "slug" c'est à dire une chaine de caractère qui ne posera pas de problème dans une url (sans espaces, ni accents, ni caractères spéciaux) :
[php]<?php
$string = "Fichier étonnant ça alors !!!";
$slug = trim(\Transliterator::createFromRules(':: Any-Latin;:: NFD;:: [:Nonspacing Mark:] Remove;:: NFC;:: [:Punctuation:] Remove;:: Lower();[:Separator:] > \'-\''
)->transliterate( $string ), '-');
var_dump($slug); // fichier-etonnant-ca-alors[/php]