erreur avec phplib

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 févr. 2006, 02:17

no,
function set_block($parent, $varname, $name = "") {
    if ($this->debug & 4) {
      echo "<p><b>set_block:</b> parent = $parent, varname = $varname, name = $name</p>\n";
    }
    if (!$this->loadfile($parent)) {
      $this->halt("set_block: unable to load $parent.");
      return false;
    }
    if ($name == "") {
      $name = $varname;
    }

    $str = $this->get_var($parent);
    $reg = "/[ \t]*<!--\s+BEGIN $varname\s+-->\s*?\n?(\s*.*?\n?)\s*<!--\s+END $varname\s+-->\s*?\n?/sm";
    preg_match_all($reg, $str, $m);
//*******************
echo '<p> $req= '.$reg.'<:p>';
echo '<p> $str= '.$str.'<:p>';
echo '<pre>';
var_dump($m);
echo '</pre>';
//********************
    $str = preg_replace($reg, "{" . "$name}", $str);
    $this->set_var($varname, $m[1][0]);
    $this->set_var($parent, $str);
    return true;
  }

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1511 Messages

07 févr. 2006, 02:21

Code : Tout sélectionner

$req= /[ ]*\s*? ?(\s*.*? ?)\s*\s*? ?/sm<:p> $str= <:p> array(2) { [0]=> array(0) { } [1]=> array(0) { } } Notice: Undefined offset: 0 in d:\dev\www\home\includes\template.php on line 327 $req= /[ ]*\s*? ?(\s*.*? ?)\s*\s*? ?/sm<:p> $str= <:p> array(2) { [0]=> array(0) { } [1]=> array(0) { } } Notice: Undefined offset: 0 in d:\dev\www\home\includes\template.php on line 327
Voilou

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 févr. 2006, 02:25

la varaible "$str" est vide donc preg_match_all() ne fait pas grand chose ce qui entraine qu'il n'y a pas de tableau a 2 dimensions $m.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1511 Messages

07 févr. 2006, 02:28

Juste une question, a quoi sert $m?
@+

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 févr. 2006, 02:31

preg_match_all()

$m récupère sous forme de tableau le résultat de l'expression régulière

sur ce il se fait tard, je vais te laisser ici (pour l'instant) :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 1511 Messages

07 févr. 2006, 02:32

Et est ce que je peux enlever le [1][0] sans aucun risque?
@+

ViPHP
ViPHP | 656 Messages

15 févr. 2006, 03:46

La définition de ta variable ($m par exemple) se trouve dans une fonction, et dans une fonction les variables sont privées.

Si ta fonction est elle même dans une classe, utilise plutôt $this->m pour y acceder, sinon utilise le return de la fonction pour faire sortir ton $m (si tu as plusieurs variables à retourner, fait un tableau)