bonjour
j'ai un soucis avec mon expression régulière, lorsque je rentre le pattern en dur(je le récupère a travers un sniffer "charles") ça fonctionne, mais lorsque je laisse le code le générer et le passer en argument a preg_match($pattern,$Entry ) ca ne fonctionne plus. je ne vois pas ou est la différence entre les deux expressions
merci si qq1 y voit mieux que moi, c'est super .....
merci
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70public function retour($directory,$extension){ //creation xml $this->directoryXML = new DOMDocument(); // racine du fichier xml : repertoire public $this->directoryXML->loadXML('<?xml version="1.0" encoding="ISO-8859-1"?> <directory> <galeries> </galeries> </directory>'); $MyDirectory = opendir($directory) or die('Erreur'); //$node = $this->directoryXML->documentElement; $this->node = $this->directoryXML->getElementsByTagName("galeries")->item(0); //$this->node = $this->directoryXML; //$myTab = array(); // verification extension autorisées $pattern = "'#"; foreach($extension as $value) { if(!($value == end($extension))) { $pattern.=$value.'$|'; }else{ $pattern.=$value.'$'; } } $pattern .= "#'"; //expression récupérer dans le sniffer avec laquelle ca fonctionne //$pattern='#jpg$|png$|jpeg$|gif$#'; while($Entry = @readdir($MyDirectory)) { //return $pattern; /* renvois les extention passé en parametres*/ if($Entry != '.' && $Entry != '..' && preg_match($pattern,$Entry )>0) { $file = $this->directoryXML->createElement("photo"); // ajoute l'attribut source = nom du fichier medias $file->setAttribute('source',$Entry); // ajoute le noeud $this->node->appendChild($file); } }// fin while closedir($MyDirectory); $xml = $this->directoryXML->saveXML(); return $xml; //return $pattern; }// fin retour
Partager