manipulation d'une chaîne
11 messages
• Page 1 sur 1
- dudo
- WRInaute occasionnel

- Messages: 453
- Inscription: 10 Jan 2004
manipulation d'une chaîne
Bonjour,
J'ai besoin de manipuler le contenu d'une chaine
Mais au final cela m'affiche $tagData et non pas le contenu
Débutant en php
merci
ludo[/code]
J'ai besoin de manipuler le contenu d'une chaine
- Code: Tout sélectionner
$storeoffer->stock_description[0]->tagData
if($show_stock_message==true){echo'<td align="center" valign="middle">'.$storeoffer->stock_description[0]->tagData.'</div></td>';
'.$storeoffer->stock_description[0]->tagData.' m'affiche bien un contenu
je comptais donc mettre cette ligne dans une variable
$tagData ="$storeoffer->stock_description[0]->tagData";
pour manipuler cette chaîne:
$in = array('à', 'á', 'â', 'ô', 'è', 'é', 'ê', 'î', 'ù', 'ú','û');
$out = array('à ', 'á ', 'â ', 'ô ', 'è ', 'é ', 'ê ', 'î ', 'ù ', 'ú ','û ');
$tagData = str_replace($in, $out, $tagData);
if($show_stock_message==true){echo'<td align="center" valign="middle"> <div class="api_store_promo">$tagData</div></td>';}
Mais au final cela m'affiche $tagData et non pas le contenu
Débutant en php
merci
ludo[/code]
-

bgdc - WRInaute impliqué

- Messages: 723
- Inscription: 23 Mai 2005
Bonjour,
et si tu essayais ça :
et si tu essayais ça :
- Code: Tout sélectionner
{echo'<td align="center" valign="middle"> <div class="api_store_promo">'.$tagData.'</div></td>';}
- dudo
- WRInaute occasionnel

- Messages: 453
- Inscription: 10 Jan 2004
et si tu essayais ça :
Re Bonjour,
Merci, cela fonctionne parfaitement, en revanche je ne résouds pas complètement
mon problème en effet si je traite ma chaine , je me retrouve avec des aberrations:
numérique devient numé rique évidemment !
J'utilise le code paser XML/HTML à cette adresse
*http://www.criticaldevelopment.net/xml/parser_php4.phps
Ce parser m'enlève les espaces à chaque fois qu'il rencontre une lettre accentuée et je ne comprends pas pourquoi:
Ex: l'appareil estégalementéquipéd'un bouton de type joystick
au lieu de
l'appareil est également équipé d'un bouton de type joystick
Les espaces disparaissent entre chaque mot à chaque fois
qu'il a y une lettre accentuée en début ou en fin de mot
Merci
- Code: Tout sélectionner
{echo'<td align="center" valign="middle"> <div class="api_store_promo">'.$tagData.'</div></td>';}
Re Bonjour,
Merci, cela fonctionne parfaitement, en revanche je ne résouds pas complètement
mon problème en effet si je traite ma chaine , je me retrouve avec des aberrations:
numérique devient numé rique évidemment !
J'utilise le code paser XML/HTML à cette adresse
*http://www.criticaldevelopment.net/xml/parser_php4.phps
Ce parser m'enlève les espaces à chaque fois qu'il rencontre une lettre accentuée et je ne comprends pas pourquoi:
Ex: l'appareil estégalementéquipéd'un bouton de type joystick
au lieu de
l'appareil est également équipé d'un bouton de type joystick
Les espaces disparaissent entre chaque mot à chaque fois
qu'il a y une lettre accentuée en début ou en fin de mot
Merci
-

bgdc - WRInaute impliqué

- Messages: 723
- Inscription: 23 Mai 2005
au fait, je ne comprends pas l'utilité de ça :
Tu remplaces les lettres accentuées par des lettres accentués ? Je pense qu'il y a un copié/collé malheureux et que la correction résoudra peut être ton autre pb.
- Code: Tout sélectionner
$in = array('à', 'á', 'â', 'ô', 'è', 'é', 'ê', 'î', 'ù', 'ú','û');
$out = array('à ', 'á ', 'â ', 'ô ', 'è ', 'é ', 'ê ', 'î ', 'ù ', 'ú ','û ');
$tagData = str_replace($in, $out, $tagData);
Tu remplaces les lettres accentuées par des lettres accentués ? Je pense qu'il y a un copié/collé malheureux et que la correction résoudra peut être ton autre pb.
- zeb
- WRInaute accro

- Messages: 3283
- Inscription: 5 Déc 2004
dudo a écrit:J'utilise le code paser XML/HTML à cette adresse
*http://www.criticaldevelopment.net/xml/parser_php4.phps
Pour pouvoir te répondre, il faudrait un peut plus de détails, notamment un exemple concret et le moment ou cette disparition est constaté.
Ajout des echo ici et là pour voir l'évolution de ta chaine et identifier l'endroit ou les espace disparaissent.
- zeb
- WRInaute accro

- Messages: 3283
- Inscription: 5 Déc 2004
bgdc a écrit:au fait, je ne comprends pas l'utilité de ça :
- Code: Tout sélectionner
$in = array('à', 'á', 'â', 'ô', 'è', 'é', 'ê', 'î', 'ù', 'ú','û');
$out = array('à ', 'á ', 'â ', 'ô ', 'è ', 'é ', 'ê ', 'î ', 'ù ', 'ú ','û ');
$tagData = str_replace($in, $out, $tagData);
Tu remplaces les lettres accentuées par des lettres accentués ? Je pense qu'il y a un copié/collé malheureux et que la correction résoudra peut être ton autre pb.
je me suis aussi posé la question avant de voir qu'il rajoute les espaces disparus derrière les caractères accentués.
donc traitement aval d'un bug en amont qui donne :
je me retrouve avec des aberrations: numérique devient numé rique évidemment !
- dudo
- WRInaute occasionnel

- Messages: 453
- Inscription: 10 Jan 2004
bgdc a écrit:au fait, je ne comprends pas l'utilité de ça :
- Code: Tout sélectionner
$in = array('à', 'á', 'â', 'ô', 'è', 'é', 'ê', 'î', 'ù', 'ú','û');
$out = array('à ', 'á ', 'â ', 'ô ', 'è ', 'é ', 'ê ', 'î ', 'ù ', 'ú ','û ');
$tagData = str_replace($in, $out, $tagData);
Tu remplaces les lettres accentuées par des lettres accentués ? Je pense qu'il y a un copié/collé malheureux et que la correction résoudra peut être ton autre pb.
Non en fait je corrige en rajoutant l'espace disparu
$in = array('à', 'â ', 'ô ', 'è ', 'é '');
$out = array(' à ', '', 'â ', 'é ');
$tagData = str_replace($in, $out, $tagData);
En fait, il y a 2 solutions,
1/ soit je bricole le code précédent et pour résoudre le problème il me faut une fonction qui traite la variable $tagData et qui ajoute un espace
à gauche s'il s'agit d'une première lettre accentuée et/ ou à droite s'il s'agit de la dernière lettre
accentuée de chaque mot de ma chaine. Et cela dépasse mes compétences
2/ soit je trouve le bug au niveau parse xml
J'utilise le code paser XML/HTML à cette adresse
*http://www.criticaldevelopment.net/xml/parser_php4.phps
//Setup the parser object
$parser = new XMLParser($xml);
//Work the magic...
$parser->Parse();
/*echo
$tagData ="$storeoffer->stock_description[0]->tagData";
if($show_stock_message==true) {echo'<td align="center" valign="middle"><div class="api_store_promo">'.$tagData.'</div></td>';}
Dans $tagData, les espaces disparaissent à chaque fois qu'il y a une lettre accentuée dans le texte ex: si j'ai "2 à 2" i il s'affiche "2à2"
"un ensemble de fonctionsàfaire" au lieu de "un ensemble de fonctions à faire" si j'ai du texte anglais aucun espace disparait.
-

bgdc - WRInaute impliqué

- Messages: 723
- Inscription: 23 Mai 2005
as tu essayer avec des caracteres sans accents ?
Si oui, as tu le meme pb ?
Tu peux aussi essayer de regarder cette ligne :
Si oui, as tu le meme pb ?
Tu peux aussi essayer de regarder cette ligne :
- Code: Tout sélectionner
eval('$this->'.$tag.'->tagData .= trim($data);');
- dudo
- WRInaute occasionnel

- Messages: 453
- Inscription: 10 Jan 2004
bgdc a écrit:as tu essayer avec des caracteres sans accents ?
Si oui, as tu le meme pb ?
Tu peux aussi essayer de regarder cette ligne :
- Code: Tout sélectionner
eval('$this->'.$tag.'->tagData .= trim($data);');
Alors là chapeau !
Sans le trim tout rentre dans l'ordre
Un grand merci !
11 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [php] enlever une partie de chaine d'une chaine complete
- extraire une sous chaine d'une chaine
- manipulation de twitter
- Manipulation ou Paranoïa ?!?
- [REGEX] une chaine contenant une autre chaine
- Manipulation des dates
- Langage de manipulation de flux texte
- Changement d'url après manipulation
- Manipulation de tableau sous joomla
- Cout prestation referencement - Manipulation
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
