begin process at 2010 02 10 14:26:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Besoin d'astuce Substr


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Besoin d'astuce Substr

mercredi 28 juin 2006 à 11:17:17 | Besoin d'astuce Substr

jdaviaud

Membre Club
Voila, j'ai besoin d'utiliser la fonction substr pour n'afficher que les 50 premiers caractères d'une phrase si elle est plus longue

le probleme c'est que je fais un site multi langues dont le francais et le grec

pour le francais pas de probleme, ca me donne le résultat escompté par contre pour le grec qui pour des questions de compatibilité utilise des caractères de la forme ο et autres ben au lieu de me couper a 50 caractères va me couper a 7 ou 8

quelqu'un aurait une astuce pour qu'il me face ca tsur la chaine finale et non sur le code HTML de départ ?

merci d'avance
mercredi 28 juin 2006 à 11:56:31 | Re : Besoin d'astuce Substr

DiGhan

Salut,
peut etre une solution qui utilise les expressions régulières, voici l'algo:
SI versionSite == 'fr' ALORS
   ecrire (découper($chaine));
SINON
   sous_chaine = '';
   carac = 0;
   FAIRE
      SI match(masque,chaine,correspondances) ALORS
         POURiter (correspondances à tempon)
            sous_chaine .= tempon
         FINPOURiter
         carac++;
      FINSI
   TQ (carac<50);
FINSI

Je te laisse la dection de la langue et le substr, voici le code utilisant les regex:

$substring = '';
$char = 0;
do {
   $pattern = "`^(&#[0-9]{3})`";
   if (preg_match($pattern,$my_string,$matches)) {
      foreach ($matches as $buffer) {
         $substring .= $buffer;
      }
      $char++;
   }
} while ($char < 50);

En supposant que tous les caractères grecs sont formés de la façon que tu as décrite.

mercredi 28 juin 2006 à 12:09:16 | Re : Besoin d'astuce Substr

jdaviaud

Membre Club
pourrais tu me documenter un petit peu ta fonction ? car je n'y connais malheuresement pas grand chose aux expressions regulieres

j'ai fait un teste tel quel de ta fonction avec
$my_string = "&#922;&#941;&#957;&#964;&#961;&#959; &#928;&#959;"

et comme resultat de $substring ca m'a retourné "&#922&#922&#922&#922&#922&#922&#922&#922"
mercredi 28 juin 2006 à 12:49:24 | Re : Besoin d'astuce Substr

DiGhan

J'ai fait compliqué pour rien. de plus mon masque n'est pas bon.
Voici une version plus soft et qui fonctionne bien (aprés test contrairement à la 1ere).

$my_string = "&#922;&#941;&#957;&#964;&#961;&#959;&#928;&#959;";
$substring = '';
$stop = FALSE;
$i = 0;
$num = 0;

do {
   $char = substr($my_string,$i,6);
   if ($char != "") {
      echo "$char<br>";
      $i += 6;
      $num++;
   } else {
      $stop = TRUE;
   }
} while (!$stop && $num < 50);
echo "Il y a $num caractères dans la chaine \"$my_string\"";

On boucle tant que $stop est faux et que le nombre de caractères est inférieur à 50.
Dans cette boucle, on récupère le caractère en déplaçant le pointeur de 6 chars, si la chaine est non vide on affiche sinon on retourne false et sort de la boucle.

mercredi 28 juin 2006 à 14:11:02 | Re : Besoin d'astuce Substr

malalam

Administrateur CodeS-SourceS
Ouais, sinon tu peux t'en sortir en installant l'extension mbstring, en attendant mieux.
[ Lien ]
mercredi 28 juin 2006 à 14:12:46 | Re : Besoin d'astuce Substr

jdaviaud

Membre Club
oui j'avais commencé à faire comme ca mais dans ce cas ca fonctionne qu'avec une chaine toute attachée sans espaces, ponctuation ... c'est la que je bloque justement
mercredi 28 juin 2006 à 14:23:33 | Re : Besoin d'astuce Substr

DiGhan

Oui en effet.
Malgrés tout, je pense que pour un traitement plus complexe, il faut utiliser les expReg. Le problème c'est que je n'ai aucune connaissance dans les caractères grecs. Si tu as une adresse avec tous les caractères encodés avec le jeu grec, je pourrais peut etre t'aider d'avantage.



Cette discussion est classée dans : probleme, caractères, astuce, substr, francais


Répondre à ce message

Sujets en rapport avec ce message

Probleme de caractères ! [ par LePROduHTML ] Bonjour tout le monde !J'ai fait un petit forum en php sur mon site pour récupérer les commentaires des visiteurs mais dès qu'il y a des  '   ou des  Tronquer un texte contenant des balises <html> avec substr [ par tonic1 ] Bonjour à tous, je suis confronté à un petit probleme, et pas moyen de trouver une solution sur le forum.J aimerai decoupé un texte avec la fonction s Conversion chaine de caractères en date fr avec substr [ par bruno3591 ] Bonjour,Je suis débutant en php. Pouvez-vous me dire si la solution que j'ai trouvé pour convertir ma chaine en date est bonne, trop longue ou autre.. probleme de 0 avec substr [ par scoubydog ] Bonjour, je vous explique mon probleme :Je travaille sur un petit module qui me permet de savoir en tapant un code postal francais si c'est au nord ou probleme en registrement caractères spéciaux "quote" [ par ju0123456789 ] Bonjour, J'ai un petit probleme, je suis en train de créer une interface de saisie de matériel, et dans mes champs ça bug quand j'entre un apostrophe Probleme include et fonction strtr [ par dupuisj ] Bonjour à tous, J'ai un petit soucis sur lequel je m'arrache les cheveux. Je souhaite créer une fonction qui m'enlève les accents d'une chaîne de ca Probleme avec le CSS /HTLml [ par nmfac ] SVP je n'arrive pas a afficher mon image avec cette balise. je ne sais pas si c'est le chemin d'accèes a l'image ki est faux ? je crois pa Probleme getimagesize [ par ouzb ] Bonjour a tous, J'ai un probleme concernant la fonction getimagesize() sous linux débian. J'ai crée mon site en local qui marche tres bien. Une fois q probleme avec appache [ par renkev ] bonjour! je débute avec php et mysql et pour cela je travaille avec notepad comme editeur de texte et wampserveur cependant j'ai un probleme quand j'e Probleme code cryptstring [ par napster24 ] Bonjour à tous, voilà j'ai télécharger un script (DDL CMS), mais voilà je voudrais éditer le fichier rightside.php et je me retrouve avec un fichier d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales