suppression d'une partie de chaine de caractère

suppression d'une partie de chaine de caractère - PHP - Programmation

Marsh Posté le 23-05-2006 à 19:52:03    

bonjour,  
j'ai un petit problème à réaliser. J'ai un fichier avec des informations perdues au milieu de plein de bordel
 
en gros :
 
Information {plein de bordel} Information {plein de bordel} Information {plein de bordel}
 
Donc en gros il faudrait que je vire ce qui se trouve entre les {}, je suppose cela assez facile, mais comme je n'ai pas touché à la prog depuis la nuit des temps, je galère pas mal. J'ai a ma disposition php ou javascript au choix.
 
Sachant que le fichier pèse 16Ko voir plus et qu'il passera à 1Ko au plus.
 
merci par avance pour votre aide

Reply

Marsh Posté le 23-05-2006 à 19:52:03   

Reply

Marsh Posté le 23-05-2006 à 20:03:43    

Avec une expression régulière c'est tout con, mais il faudrait nous filer le contenu du fichier pour voir

Reply

Marsh Posté le 23-05-2006 à 20:07:07    

DOMINIQUE {\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1036\deftab708{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fnil\fcharset0 MS Shell Dlg;}}
\viewkind4\uc1\pard\nowidctlpar\qc\lang1036\f0\fs20  1\f1\fs17\par
}
 ROUGE      {\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1036{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f83\froman\fcharset238\fprq2 Times New Roman CE;}{\f84\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f86\froman\fcharset161\fprq2 Times New Roman Greek;}{\f87\froman\fcharset162\fprq2 Times New Roman Tur;}
{\f88\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f89\fswiss\fcharset238\fprq2 Arial CE;}{\f90\fswiss\fcharset204\fprq2 Arial Cyr;}{\f92\fswiss\fcharset161\fprq2 Arial Greek;}{\f93\fswiss\fcharset162\fprq2 Arial Tur;}
{\f94\fswiss\fcharset186\fprq2 Arial Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;
\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\nowidctlpar\widctlpar\adjustright \fs20\lang1036\cgrid \snext0 Normal;}{\*
\cs10 \additive Default Paragraph Font;}}\margl1417\margr1417\margt1417\margb1417 \deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\formshade\pgbrdrhead\pgbrdrfoot \fet0\sectd \linex0\headery709\footery709\colsx709\sectdefaultcl {\*\pnseclvl1
\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5
\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \qc\nowidctlpar\adjustright \fs20\lang1036\cgrid {\b\f1\fs24\cgrid0  1}{\f1\fs24\super\cgrid0 er  .}{\b\f1\fs24  
\par }} 7 950
 
en gros faudrait que ca me sorte :
DOMINIQUE ROUGE 7950
 
je ne pense pas que ca soit bien dur mais je trouve pas ce que je cherche sur le net

Reply

Marsh Posté le 23-05-2006 à 20:20:26    

en fait l'idéal serait je pense de chercher le caractère "}" et une fois celui la trouver, de revenir juste avant histoire de trouver le "{" et de supprimer les trucs qu'il y a au milieu.
 
et recommencer jusqu'à ne plus trouver "}"
 
while(trouver(}))
{
trouver({) en partant de }
supprimer({,});
}
 
ca doit etre assez faisable.

Reply

Marsh Posté le 23-05-2006 à 22:03:45    

Code :
  1. preg_replace('#\{((?>[^{}]+)|(?R))*\}#', '', $string);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 23-05-2006 à 22:59:41    

je peux pas repondre la je suis pas au boulot mais si ca marche, un grand merci à toi.

Reply

Marsh Posté le 24-05-2006 à 09:00:46    

sielfried a écrit :

Code :
  1. preg_replace('#\{((?>[^{}]+)|(?R))*\}#', '', $string);



 
 
c est magnifique tellement j y comprends rien :d

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed