XHTML remplacer 1 caractere par 1 espace

Fermé
zatox - 29 mars 2009 à 03:19
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 29 mars 2009 à 11:32
Bonjour, désolé, ça fait plusieurs fois que je pose la même question mais quand je valide le message, il n'y a pas d'erreur et pourtant je ne retrouve pas mon message. Bon je tente de poster celui-:

En XHTML Je voudrais remplacer je voudrais remplacer 1 caractère par un espace ex:

Si j'ai "**************************Bonjour" je voudrais afficher
" Bonjour et pas
Bonjour

Si j'utilise $contenu = str_replace("*", " ", $contenu); ça ne marche pas
Merci pour vos réponses.
A voir également:

3 réponses

RAD ZONE Messages postés 5230 Date d'inscription samedi 20 janvier 2007 Statut Contributeur Dernière intervention 17 août 2024 1 360
29 mars 2009 à 04:10
voila 3 solution
text-indent & word-spacing
indent = indente le texte
word-spacing=espace entre chaque mots

margin fait une marge

 
fait un espace invisible par les navigateurs mais ne pas en abuser !!!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta name="generator" content="HTML Tidy for Windows (vers 15 August 2007), see www.w3.org" />
    <title>RAD ZONE Webcreation
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="author" content="http://radservebeer.free.fr" />
    <meta name="generator" content="PSPad editor, www.pspad.com" />
<style type="text/css">
/*<![CDATA[*/

p.indent{text-indent: 20px;
text-align: left;
word-spacing: 4px;}

p.margin{
margin-left: 10px;
text-align: left;}

p{
}


/*]]>*/
</style>
  </head>
  <body><h3>p.indent & word-spacing</h3>
    <p class="indent">Lorem ipsum dolor sit amet consectetuer nisl orci risus pretium vitae.
    </p><h3>p.margin</h3>
    <p class="margin">Vestibulum netus morbi at Aliquam cursus tortor nonummy Integer at ut.
    </p><h3>p</h3>
    <p>Urna Nullam id Fusce auctor fames sed nibh consequat hendrerit vel.
    </p>
    <p>&nbsp;&nbsp;Urna Nullam id Fusce auctor fames sed nibh consequat &nbsp;&nbsp;&nbsp;hendrerit vel.
    </p>
</html>
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
29 mars 2009 à 11:32
salut Rad !

au passage pourrais-tu jeter un œil ici ?

ça parle de Flash, beurk !…
-:oD
0
zatox Messages postés 640 Date d'inscription samedi 17 février 2007 Statut Membre Dernière intervention 26 juin 2020 66
29 mars 2009 à 09:38
Euh euh, je te remercie pour ta réponse, mais je pense que je me suis mal exprimé car ce n'est pas tout à fait ça que je veux. je m'explique: je suis entrain de construire un petit site et par exemple pour les news j'ai créé un petit script qui permet à un utilisateur lamda de rédiger ces news sans avoir besoin de toucher au code. Ce script permet d'écrire dans une base sql, puis à l'affichage des news, je vais les chercher dans cette base. Ce que je voudrais, c'est que l'administrateur puisse faire lui-même la mise en page. Supposons qu'il écrive:
" Bonjour" actuellement dans ma news j'ai
"Bonjour" alors que je voudrais avoir:
" Bonjour"

En fait je voudrais tenir compte de tous les caractères espaces que l'administrateur à saisi. Comme je ne trouve pas de solution, j'avais pensé à l'instruction str_replace qui peut remplacer un caractère par un autre par exemple l'administrateur aurait pu saisir:

"µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµBonjour"

à l'affichage je faisais $chaine = str_replace('µ', ' ', $chaine); mais ça ne marche pas avec des espaces. Si je fais $chaine = str_replace('µ', '-', $chaine); ça ça marche il remplace bien le caractère µ par le caratère - mais par un espace ça ne marche pas.

Peut-être y-a-t-il d'autres solutions c'est ce que je voudrais savoir.
Merci pour vos réponses.
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
29 mars 2009 à 11:29
salut,

le problème doit survenir à l'affichage.
tu remplaces bien chaque astérisque par une espace et tu obtiens donc une suite de plusieurs espaces en début de paragraphe.
or les navigateurs doivent supprimer les espaces en double et ceux en début ou fin de paragraphe.
[…]
les agents utilisateurs sont censés fusionner toute succession de blancs du document source lorsqu'ils produisent l'espace-mot de la restitution […] les auteurs ne devraient pas compter sur les agents utilisateurs pour restituer les blancs placés juste après une balise ouvrante ou bien juste avant une balise fermante […]

source

il faudrait donc modifier ta technique sur deux points :
• replacer tous les astérisques par une seule espace ;
• utiliser l'espace insécable (conseillée par Rad Zone) au lieux de l'espace standard.

pour ça il faut utiliser les expressions régulières :
$contenu = preg_replace('`^\*+`', '&nbsp;', $contenu);

ça reste à tester…
0