Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2036 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Formatage de code <pre>, wordwrap, etc...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Formatage de code <pre>, wordwrap, etc...

n°1033185
dwogsi
Défaillance cérébrale...
Posté le 02-04-2005 à 17:53:14  profilanswer
 

Bon alors voilà je travail donc actuellement sur un forum et en fait lorsqu'un visiteur veut afficher du code, celui ci est placé entre les balises <pre> et </pre> histoire de faire ca de facon "conforme" afin d'avoir les espaces et tabulation en début de ligne.
 
Cependant le problème est que tant qu'il n'y a pas de retour à la ligne dans la chaine, il n'y en a pas non plus dans le rendu donc ca detruit quelque peu voir beaucoup le design de la page.
 
Donc j'ai étudié quelques solutions:
 
CSS:

Code :
  1. pre{
  2.    overflow: auto;
  3. }


 
Cette solution fonctionne sur certains navigateurs mais pas d'autre et comme je souhaite assurer un maximum de compatibilité cette solution ne me convient pas.
 
Ensuite j'ai cherché des solutions a travers le net, et tout ce que j'ai trouvé c'est un script en js qui refait le formatage une fois la page chargée. L'ennui est que durant le chargement le design est quelque peu étrange et ce script allourdi de facon suffisament importante le poids de la page pour que je choississe de ne pas l'utilisé.
 
Alors comme toutes ces solutions coté client n'ont pas fonctionné, je me suis tourné vers une solution coté serveur, donc php (ce pourquoi je poste ici). J'ai pensé que wordwrap irait bien, cela dit il y a encore problème.
 
Je m'explique:
Si par exemple j'ai le code suivant

Code :
  1. <?
  2. $str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
  3. $str = wordwrap($str,4,\n,0);
  4. echo $str;
  5. ?>


 
Et bien la chaine n'est pas découpée mais laissée en entier.
 
--------
 

Code :
  1. <?
  2. $str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
  3. $str = wordwrap($str,4,"\n",1);
  4. echo $str;
  5. ?>


 
Ca fonctionne bien.
 
L'ennui c'est qu'avec ce code, les mots qu'il suffirait de placer à la ligne suivante sont barebarement coupés en deux ce qui enlève de la lisibilité.
 
Alors voilà après avoir fait moulte tentatives avec diverses solutions je me demandais comment pouvait on faire pour que:
 
- Un mot dont la longeure est trop grande soit coupé en deux
- Un mot qu'il suffit de placé à la ligne suivante soit placé a cette ligne plutot que coupé en deux
 
Merci bien!
Et bonne soirée à tous.


Message édité par dwogsi le 02-04-2005 à 21:37:43

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
mood
Publicité
Posté le 02-04-2005 à 17:53:14  profilanswer
 

n°1033194
flo850
moi je
Posté le 02-04-2005 à 18:18:19  profilanswer
 


et qq chose du genre :
1- tu fais wordwrap($str,4,\n,0);
2- si dans la phrase ainsi decoupé il y a des "mots" trop longs, alors wordwrap($str,4,\n,1);
 
 
Autre solution, plus elegante : en programmation , il y a d'autre séparateurs que les retours a la ligne ( ;, ) {}

n°1033201
dwogsi
Défaillance cérébrale...
Posté le 02-04-2005 à 18:32:31  profilanswer
 

flo850 a écrit :

et qq chose du genre :
1- tu fais wordwrap($str,4,\n,0);
2- si dans la phrase ainsi decoupé il y a des "mots" trop longs, alors wordwrap($str,4,\n,1);


 
Tu voudrais dire que je la passe dans deux wordwrap avec des paramètres différents? Ca dois pouvoir marcher je vais essayer et si ca marche merci et je suis un co*.
 
 

flo850 a écrit :


Autre solution, plus elegante : en programmation , il y a d'autre séparateurs que les retours a la ligne ( ;, ) {}


 
En revanche je ne vois pas très bien ce que tu veux dire ici...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1033243
flo850
moi je
Posté le 02-04-2005 à 20:19:43  profilanswer
 

c pour presenter correctement des morceaux de code ?
tu ne te base , pour le momentque sur le caractère de fin de ligne pour les césures, alors que tu pourrai aussi e baser sur d'autres caractères

n°1033257
dwogsi
Défaillance cérébrale...
Posté le 02-04-2005 à 20:44:28  profilanswer
 

Oui effectivement c'est pour présenter du code correctement, mais je ne me base pas du tout sur les caractéres de fin de ligne...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Formatage de code <pre>, wordwrap, etc...

 

Sujets relatifs
tuer automatiquement une interface avec code glade???audit de code
expression reguliere avec code sourceFaire un générateur de code ...
arf!!! code JavaScript qui marche pas sous FireFoxArf!!! Problm code Javascript sou FireFox
Integration de code assembleur sous Turbo C++ 3fork et code retour
pb de portage de codeEditer du code C++ avec Doxygen
Plus de sujets relatifs à : Formatage de code <pre>, wordwrap, etc...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR