8768 sujets
Développement web côté serveur, CMS
Bonjour,
Dans les doc PHP il y a souvent la réponse à ces petits travers dans les commentaires :
https://www.php.net/manual/fr/function.str-shuffle.php#107656
Une fonction maison qui gère le soucis. N'ayant jamais rencontré le soucis j'ai pas mieux sous le coude ! (mais j'ai testé et ca a l'air de marcher)
Bonne journée
Dans les doc PHP il y a souvent la réponse à ces petits travers dans les commentaires :
<?php
function str_shuffle_unicode($str) {
$tmp = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
shuffle($tmp);
return join("", $tmp);
}
?>
$str = "?eker yârim"; // My sweet love
echo str_shuffle($str); // i?eymr?ekr ?
echo str_shuffle_unicode($str); // ?r mreyeikâ
https://www.php.net/manual/fr/function.str-shuffle.php#107656
Une fonction maison qui gère le soucis. N'ayant jamais rencontré le soucis j'ai pas mieux sous le coude ! (mais j'ai testé et ca a l'air de marcher)
Bonne journée
Bonjour,
il y aurait aussi les fonctions utf8_encode et utf8_decode qui sont peut-être aussi de bon secours.
Cela ressemble à un tour de passe-passe, je l'accorde.
cdt
Modifié par gcyrillus (18 Feb 2022 - 13:48)
il y aurait aussi les fonctions utf8_encode et utf8_decode qui sont peut-être aussi de bon secours.
$str = 'abéàçâc?deféàç';
echo $str .'<br>';
$shuffled = str_shuffle($str);
echo $shuffled .' - heu ?? <br>';// raté
$str= utf8_decode($str);
$shuffled = str_shuffle($str);// on recommence
echo $shuffled .' - heu bah nan <br>';// encore raté
echo utf8_encode($shuffled) .' oki !';// ça semble tout bon
echo '<br>';
Cela ressemble à un tour de passe-passe, je l'accorde.
cdt
Modifié par gcyrillus (18 Feb 2022 - 13:48)
Bonjour à vous !
Voici la fonction, telle qu'elle me convient :
NB :
* Ma fonction tag concatène avec l'intercalaire chaine vide;
* ma constante VIDE contient la chaine vide.
Voici le contexte :
Le résultat est https://dips.doobee.fr/
Merci de vos contributions; j'y reviendrai plus tard.
Voici la fonction, telle qu'elle me convient :
function shuf2str( $argument )
{
if( is_array( $argument ) ) $argument = tag( $argument ) ;
$argument = preg_split( "//u", strip_tags( $argument ) ) ;
shuffle( $argument ) ;
return join( VIDE, $argument ) ;
}
NB :
* Ma fonction tag concatène avec l'intercalaire chaine vide;
* ma constante VIDE contient la chaine vide.
Voici le contexte :
include "Data/necro.data" ; $grostr = str_repeat( tag( $necro ), 3 ) ;
$nom = nommer( "René Weil" ) ; $titre = "Le glyphe du Dasein" ;
$dedicace = array(
BR.$nom.VI.tag( $titre, "q" ),
"in $nom, Le Roman inachevé, Paris, 1956",
"© Éditions Gallimard, 1956"
) ;
$main = array(
"h3" => $titre,
"<img src=\"https://i.ytimg.com/vi/VDPnuHs5_B8/hqdefault.jpg\" />",
tag( shuf2str( $necro ).DOT, "p" ),
htmllister( $necro, "span", "center id=\"necro\"" ),
tag( shuf2str( $grostr ).DOT, "p" ),
tag( shuf2str( $grostr ).DOT, "p" ),
tag( shuf2str( $grostr ).DOT, "p" ),
tag( shuf2str( $necro ).DOT, "p" ),
"dedicace" => join( VIBR, $dedicace ),
) ;
Le résultat est https://dips.doobee.fr/
Merci de vos contributions; j'y reviendrai plus tard.