Bug : Texte mal coupé pour afficher l'intro d'articles sur la page d'accueil #5563

Closed
opened 2 months ago by syl20 · 16 comments
syl20 commented 2 months ago

Firefox affiche le message d'erreur suivant : "Le flux d’octets était en erreur par rapport à l’encodage de caractères déclaré. La déclaration d’encodage des caractères était peut être incorrecte." et certains textes contenant des caractères accentués ne sont pas convenablement coupés pour n'afficher que le texte d'introduction. Il y a de plus à la fin le caractère : �

Firefox affiche le message d'erreur suivant : "Le flux d’octets était en erreur par rapport à l’encodage de caractères déclaré. La déclaration d’encodage des caractères était peut être incorrecte." et certains textes contenant des caractères accentués ne sont pas convenablement coupés pour n'afficher que le texte d'introduction. Il y a de plus à la fin le caractère : �
b_b commented 2 months ago
Owner

Le descriptif ne me semble pas clair, mais je comprends mieux en lisant la PR liée cf #5564

Version cible ?

Le descriptif ne me semble pas clair, mais je comprends mieux en lisant la PR liée cf https://git.spip.net/spip/spip/pulls/5564 Version cible ?
syl20 commented 2 months ago
Poster

Voici une copie d'écran. C'est censé être l'intro d'un article contenant que des à. L'intro est bpc trop longue et il y a ce caractère � à la fin.

Voici une copie d'écran. C'est censé être l'intro d'un article contenant que des à. L'intro est bpc trop longue et il y a ce caractère � à la fin. ![](https://pasteboard.co/AJx585FQhA9V.png)
b_b commented 2 months ago
Owner

Version cible = quelle version utilises-tu ? :)

Version cible = quelle version utilises-tu ? :)
syl20 commented 2 months ago
Poster

C'est la 4.2.2

C'est la 4.2.2
b_b added this to the 4.2 milestone 2 months ago
b_b added the
bug
label 2 months ago
b_b commented 2 months ago
Owner

De mon côté je ne reproduis pas, il faudrait plus d'info sur le contexte (encodage et interclassement de la base de données, texte de l'article et contenu correspondant dans la table spip_articles, etc).

De mon côté je ne reproduis pas, il faudrait plus d'info sur le contexte (encodage et interclassement de la base de données, texte de l'article et contenu correspondant dans la table spip_articles, etc).
syl20 commented 2 months ago
Poster

Le site est en UTF-8 et spip_articles en latin1_swedish_ci.

texte de spip_articles contient :

à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à

Le site est en UTF-8 et spip_articles en latin1_swedish_ci. texte de spip_articles contient : à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à

Je ne reproduis pas non plus. Mais est-ce que ce ne serait pas plutôt un souci de cohérence de charset dans les tables ? Un site en UTF-8 avec des tables en latin1_swedish_ci ça me semble douteux, les tables devraient en utf8_quelque_chose (utf8_general_ci par exemple)

Mon, essai en local avec SPIP 4.2.2, spipr-dist, php 8.2 :
image

Je ne reproduis pas non plus. Mais est-ce que ce ne serait pas plutôt un souci de cohérence de charset dans les tables ? Un site en UTF-8 avec des tables en latin1_swedish_ci ça me semble douteux, les tables devraient en utf8_quelque_chose (utf8_general_ci par exemple) Mon, essai en local avec SPIP 4.2.2, spipr-dist, php 8.2 : ![image](/attachments/45f19a69-3d6e-44ee-95d5-b1d927c69466)
syl20 commented 2 months ago
Poster

Je suis en PHP 8.2 . Est ce que la différence viendrait de là car avec exactement la même config, ça fonctionnait avant en PHP 7.4 et Spip 4.1

Je suis en PHP 8.2 . Est ce que la différence viendrait de là car avec exactement la même config, ça fonctionnait avant en PHP 7.4 et Spip 4.1
Owner

Voir #5422

Il se pourrait que ça passe effectivement un cas qui n’était pas prévu ?

Voir #5422 Il se pourrait que ça passe effectivement un cas qui n’était pas prévu ?
Owner

Ça concerne le bout de code préliminaire qui pré-coupe à 2x la taille plus 400.
Avec un encodage normal, la chaine test "à à à à à à à..." n'utilise que 1.5x la longueur visible : après coupe strlen donne 901 alors que spip_strlen donne 604 pour une coupe à 600

string(901) "à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à (...)"
int(901)
int(604)

Donc en effet, si l'encodage et normal, on ne provoque pas ce bug avec la chaine de test ci-dessus. En revanche, je suppose qu'on peut arriver à le provoquer avec un char UTF encodé sur plus de 2 octets, par exemple avec des smiley et une coupe à 901

string(2202) "😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 �"
int(2202)
int(881)

Il y a donc un vrai bug potentiel, mais le cas dans lequel il se présente chez @syl20 est vraisemblablement plutot lié à un défaut d'encodage, car il faut vraiment jouer de malchance pour tomber dessus.

Si on veut corriger, par contre il ne faut pas modifier le premier strlen qui sert juste à éviter tous les calculs si la chaine est vide: on a pas besoin d'être précis à cet endroit et on veut au contraire aller vite

Ça concerne le bout de code préliminaire qui pré-coupe à 2x la taille plus 400. Avec un encodage normal, la chaine test "à à à à à à à..." n'utilise que 1.5x la longueur visible : après coupe strlen donne 901 alors que spip_strlen donne 604 pour une coupe à 600 ``` string(901) "à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à (...)" int(901) int(604) ``` Donc en effet, si l'encodage et normal, on ne provoque pas ce bug avec la chaine de test ci-dessus. En revanche, je suppose qu'on peut arriver à le provoquer avec un char UTF encodé sur plus de 2 octets, par exemple avec des smiley et une coupe à 901 ``` string(2202) "😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 �" int(2202) int(881) ``` Il y a donc un vrai bug potentiel, mais le cas dans lequel il se présente chez @syl20 est vraisemblablement plutot lié à un défaut d'encodage, car il faut vraiment jouer de malchance pour tomber dessus. Si on veut corriger, par contre il ne faut pas modifier le premier strlen qui sert juste à éviter tous les calculs si la chaine est vide: on a pas besoin d'être précis à cet endroit et on veut au contraire aller vite
Owner

Le diff testé qui suffit donc

diff --git a/ecrire/inc/texte_mini.php b/ecrire/inc/texte_mini.php
index 4ca80fba5..5874f94e4 100644
--- a/ecrire/inc/texte_mini.php
+++ b/ecrire/inc/texte_mini.php
@@ -387,7 +387,7 @@ function couper($texte, $taille = 50, $suite = null) {
    $offset = 400 + 2 * $taille;
    while (
        $offset < $length
-       and strlen(preg_replace(',<(!--|\w|/)[^>]+>,Uims', '', substr($texte, 0, $offset))) < $taille
+       and spip_strlen(preg_replace(',<(!--|\w|/)[^>]+>,Uims', '', spip_substr($texte, 0, $offset))) < $taille
    ) {
        $offset = 2 * $offset;
    }
@@ -400,7 +400,7 @@ function couper($texte, $taille = 50, $suite = null) {
            $offset = $p_tag_fermant + 1;
        } // prolonger la coupe jusqu'au tag fermant suivant eventuel
    }
-   $texte = substr($texte, 0, $offset); /* eviter de travailler sur 10ko pour extraire 150 caracteres */
+   $texte = spip_substr($texte, 0, $offset); /* eviter de travailler sur 10ko pour extraire 150 caracteres */

    if (!function_exists('nettoyer_raccourcis_typo')) {
        include_spip('inc/lien');
Le diff testé qui suffit donc ```diff diff --git a/ecrire/inc/texte_mini.php b/ecrire/inc/texte_mini.php index 4ca80fba5..5874f94e4 100644 --- a/ecrire/inc/texte_mini.php +++ b/ecrire/inc/texte_mini.php @@ -387,7 +387,7 @@ function couper($texte, $taille = 50, $suite = null) { $offset = 400 + 2 * $taille; while ( $offset < $length - and strlen(preg_replace(',<(!--|\w|/)[^>]+>,Uims', '', substr($texte, 0, $offset))) < $taille + and spip_strlen(preg_replace(',<(!--|\w|/)[^>]+>,Uims', '', spip_substr($texte, 0, $offset))) < $taille ) { $offset = 2 * $offset; } @@ -400,7 +400,7 @@ function couper($texte, $taille = 50, $suite = null) { $offset = $p_tag_fermant + 1; } // prolonger la coupe jusqu'au tag fermant suivant eventuel } - $texte = substr($texte, 0, $offset); /* eviter de travailler sur 10ko pour extraire 150 caracteres */ + $texte = spip_substr($texte, 0, $offset); /* eviter de travailler sur 10ko pour extraire 150 caracteres */ if (!function_exists('nettoyer_raccourcis_typo')) { include_spip('inc/lien'); ```
Owner

Tant de 😃 ça donne le sourire !

Tant de 😃 ça donne le sourire !
Owner

(ah mais on utilise $length ensuite, donc en effet un spip_strlen serait plus approprié...)

(ah mais on utilise $length ensuite, donc en effet un spip_strlen serait plus approprié...)
Owner

J'ai fait une PR pour les tests donc spip/tests#24

J'ai fait une PR pour les tests donc https://git.spip.net/spip/tests/pulls/24
marcimat referenced this issue from a commit 4 weeks ago
marcimat referenced this issue from a commit 3 weeks ago
marcimat referenced this issue from a commit 3 weeks ago
b_b commented 2 weeks ago
Owner

On peut fermer suite à #5592 non ?

On peut fermer suite à #5592 non ?
Owner

Tout à fait !

Tout à fait !
marcimat closed this issue 2 weeks ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: spip/spip#5563
Loading…
There is no content yet.