Bonjour et désolé pour cette question récurrente. Si une âme charitable veut bien m'aider, j'expose le problème. Je souhaite utiliser un plugin joomla geoportalapi dont voici une partie du code :
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
70
71
72
73
74
75
76
77
78
79
80
81
82
 
function geoportalapi (&$matches)
    {
 
        $this->nb_map ++;
 
        $params = $matches[1]; // paramettres
        $overlays = $matches[2]; // overlays
 
        $param_default['width'] = $this->params->get('width');
        $param_default['height'] = $this->params->get('height');
        $param_default['lon'] = $this->params->get('longitude');
        $param_default['lat'] = $this->params->get('latitude');
	$param_default['zoom'] = $this->params->get('zoom');
 
 
        $overlayshtml= $this->createHTMLoverlays($overlays);
 
 
 
        $regex_width = "#.*width=\'(.*)\'.*#s";
        $regex_height = "#.*height=\'(.*)\'.*#s"; 
        $regex_lon = "#.*lon=\'(.*)\'.*#s";
        $regex_lat = "#.*lat=\'(.*)\'.*#s";
	$regex_zoom = "#.*zoom=\'(.*)\'.*#s";
 
        $param['width'] = preg_replace($regex_width, "$1", $params);
        $param['height'] = preg_replace($regex_height, "$1", $params);
        $param['lon'] = preg_replace($regex_lon, "$1", $params);
        $param['lat'] = preg_replace($regex_lat, "$1", $params);
	$param['zoom'] = preg_replace($regex_zoom, "$1", $params);
 
 
 
        if($param['lat'] == $params) // si le paramettre n'est pas présent
            $param['lat'] = $param_default['lat'];
        if($param['lon'] == $params) // si le paramettre n'est pas présent
            $param['lon'] = $param_default['lon'];
        if($param['height'] == $params) // si le paramettre n'est pas présent
            $param['height'] = $param_default['height'];
        if($param['width'] == $params) // si le paramettre n'est pas présent
            $param['width'] = $param_default['width'];
        if($param['zoom'] == $params) // si le paramettre n'est pas présent
            $param['zoom'] = $param_default['zoom'];
 
        $key  = $this->params->get('key');
 
        $html = "<div id=\"viewerDiv$this->nb_map\" style=\"width:". $param['width'] ."px; height:". $param['height']."px; \"></div>\n";
 
        if($this->nb_map == 1)
        {
            $html .= "<script type=\"text/javascript\" src=\"http://api.ign.fr/geoportail/api/js/latest/GeoportalExtended.js\">
                      <!-- -->
                      </script>";
 
        }
 
 
        //TODO : listener sur actions séparés (pour le onload)
        $html .= "<script type=\"text/javascript\"><!--//--><![CDATA[//><!--
 
                  var load$this->nb_map= function() {
                      var VIEWER$this->nb_map = Geoportal.load(
                          // div's ID:
                          'viewerDiv$this->nb_map',
                          // API's keys:
                          ['".$key."'],
                          {// map's center :
                              // longitude:
                              lon:".$param['lon'].",
                              // latitude:
                              lat:".$param['lat']."
                          },".$param['zoom']."
                          ".$overlayshtml."
 
                      );
                  };
                  //--><!]]></script>";
 
        return $html;
 
    }
Ce plugin fait un passage de paramètre dans la variable $params. Elle contient les informations width, height, lat, lon et zoom et est de la forme suivante :
width='254' height='752' lon='6.739' lat='45.618' zoom='20'

Le problème est que les informations width, ... ne sont pas récupérées par la variable $param['width'].

je souhaite donc trouver un moyen que la variable $param['width'] récupère le 254, $param['height'] le 752, ...

J'avais penser faire un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$regex=????
preg_match ($regex, $params, $match);
$param['width'] = $match[0];
$param['height'] = $match[1];
$param['lon'] = $match[2];
$param['lat'] = $match[3];
$param['zoom'] = $match[4];
Seulement, je ne trouve pas la $regex à utiliser.

Merci par avance