Bonjour,
Mon niveau en regex est un peu nooby donc je vous sollicite votre aide. Le but est de passer une (très grosse) application sous PHP4 vers PHP5, (oui ils ont laissé traîné la chose).
en gros au lieu d'écrire : $VAR['ffff'] ils ont écrit : $VAR[ffff] (ffff n'étant évidement pas une constante)
Le but est de faire un REGEX pour effectuer ce changement (plus de 450000 changements à opérer, en comptant certains que je ne dois évidement pas prendre)
Tous est mélangé js / html etc...
Le seul moyen est de détecter [VAR] qui est précédé par une variable php avec le $ (en gros détecter un tableau php)
Voilà ou j'en suis :
ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $file = ' sswhgs $hhh["wfwf"][dghj] => yes $hhh[\'cvcv\'][edtyu] => yes $hhh[dgddsf]["dtyudyt"] => yes xxdf["ert"][3dgdf5] [sfg5] $xxdf[dgdf5] => yes $hhh[fvsdf]["jft"][sfs] => yes (2times) '; preg_match_all('#\$[a-zA-Z_]{1}[a-zA-Z0-9_]*(.+)\[([a-zA-Z_]{1}[a-zA-Z0-9_]+)\]#U', $file, $out, PREG_PATTERN_ORDER); print_r($out);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Array ( [0] => Array ( [0] => $hhh["wfwf"][dghj] [1] => $hhh[\'cvcv\'][edtyu] [2] => $hhh[dgddsf] [3] => $xxdf[dgdf5] [4] => $hhh[fvsdf] ) [1] => Array ( [0] => hh["wfwf"] [1] => hh[\'cvcv\'] [2] => hh [3] => xdf [4] => hh ) [2] => Array ( [0] => dghj [1] => edtyu [2] => dgddsf [3] => dgdf5 [4] => fvsdf ) )
le but étant d'avoir en sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 sswhgs $hhh["wfwf"]['dghj'] => yes $hhh['cvcv']['edtyu'] => yes $hhh['dgddsf']["dtyudyt"] => yes xxdf["ert"][3dgdf5] [sfg5] $xxdf['dgdf5'] => yes $hhh['fvsdf']["jft"]['sfs'] => yes (2times)
Je sais que je ne suis pas très loin mais il manque la solution quand il y en plusieurs encastrer les uns dans les autres ou à la suite.
Partager