Browse Source

Correction de label_nettoyer() pour ne pas qu’il mange certains caractères utf8.

trim() n’est pas multibytes : on doit donc utiliser preg si on veut enlever un éventuel `\u{a0}`.
Cela dit ce caractère n’est pas présent dans les chaines de langues SPIP, mais ça permet d’utiliser
peut être label_nettoyer() pour d’autres utilisations dont on connait moins la source.
Matthieu Marcillaud 1 month ago
committed by Gitea
parent
commit
6cac153412
  1. 5
      ecrire/inc/filtres.php

5
ecrire/inc/filtres.php

@ -5481,10 +5481,7 @@ function identifiant_slug($texte, $type = '', $options = []) {
* @exemple `<:info_maximum|label_nettoyer:>`
*/
function label_nettoyer(string $text, bool $ucfirst = true): string {
$label = rtrim($text, " : \t\n\r\0\x0B\xc2\xa0");
if ($label and $label[-1] === ';') {
$label = preg_replace('#(\&nbsp;)+$#', '', $label);
}
$label = preg_replace('#([\s:]|\&nbsp;)+$#u', '', $text);
if ($ucfirst) {
$label = spip_ucfirst($label);
}

Loading…
Cancel
Save