bogue du parseur ? [Spip] incompréhension... articulation entre SPIP et PHP ??

Bonjour,

une autre hypothèse serait que l'hébergement chez Free cause ce problème.

Serait-il possible à quelqu'un de tester si :
$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3|4)$}><BOUCLE_2(MOTS){par

titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>);

crée une erreur (parse) sur un autre serveur / hébergement ?

Merci bien
Franck

----- Original Message -----
From: "Franck Saint Germain" <franck.saintgermain@free.fr>
To: <spip@rezo.net>
Sent: Friday, July 02, 2004 7:15 AM
Subject: bogue du parseur ? Re: [Spip] Re: incompréhension... articulation
entre SPIP et PHP ??

C'était ce que j'avais essayé avant.

Je viens de réessayer plusieurs choses, et en particulier (en enlevant les
espaces) :
$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3|4)$}><BOUCLE_2(MOTS){par
titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>);
print_r($A);

et (avec des guillemets ' ' autour de #TITRE) :
$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3|4)$}><BOUCLE_2(MOTS){par
titre}{","}>'#TITRE'</BOUCLE_2></BOUCLE_1>);
print_r($A);

avec un problème toujours avec le parseur, et après avoir bien vidé le

cache

à chaque fois.

J'en conclus que c'est le parseur qui a une bogue.

Franck

----- Original Message -----
From: "Fil" <fil@rezo.net>
To: "Pierre Andrews" <pierre.andrews@epfl.ch>
Cc: <spip@rezo.net>
Sent: Thursday, July 01, 2004 11:02 PM
Subject: Re: [Spip] Re: incompréhension... articulation entre SPIP et PHP

??

> > $A=array(<BOUCLE_1(ARTICLES) {id_article==^(2,3,4)$}> <BOUCLE_2(MOTS)
>
> Et avec {id_article==^(2|3|4)$} ça donnerait quoi ?
>
> -- Fil
>
> _______________________________________________
> liste spip
> spip@rezo.net - désabonnement : spip-off@rezo.net
> Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
> Documentation de SPIP : http://www.spip.net/
> irc://irc.freenode.net/spip
>

Le Fri 02/07/2004 à 13:00, Franck Saint Germain a écrit :

> et (avec des guillemets ' ' autour de #TITRE) :

et avec des guillemets doubles ?

> $A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3|4)$}><BOUCLE_2(MOTS){par
> titre}{","}>'#TITRE'</BOUCLE_2></BOUCLE_1>);
> print_r($A);

> J'en conclus que c'est le parseur qui a une bogue.

À mon avis, tu conclues un peu vite :wink:

  Le message de "parse error" qu'il te sort doit te donner le nom du
fichier généré dans le cache.
  Regarde le contenu de ce fichier, pour qu'on ait le contenu exact
de ce qui est généré.

À+, Pif.

bonjour,

Je voudrais viendrais aller plus loin, mais il me manque des infos et/ou
connaissances.

Le message d'erreur reçu est :
"Parse error: parse error in
/var/www/free.fr/b/f/monsite/CACHE/a/test.1b14b3.NEW on line 11"

Le fichier est bien celui (test) où je fais la modif. Et la ligne est à peu
près sûrement celle que j'ai identifiée.
(mes suppositions ont d'ailleurs été confirmées quand j'ai ajouté une ou
plusieurs lignes (d'affichage) : les n°s de ligne changeaient et de façon
cohérente avec mes suppositions ; de toute façon, j'ai fait tellement
d'essais qu'il y a peu de risque d'erreur)

Je ne sais pas comment faire pour voir ce qu'il se produit, puisque
www/free.fr/b/f/monsite/CACHE/a/test.1b14b3.NEW ne donne rien
(à vrai dire je suis surpris du var/ devant)

Franck

----- Original Message -----
From: "Christian Lefebvre" <christian.lefebvre@atosorigin.com>
To: <spip@rezo.net>
Sent: Friday, July 02, 2004 1:59 PM
Subject: Re: Fw: bogue du parseur ? Re: [Spip] Re:incompréhension...
articulation entre SPIP etPHP ??

Le Fri 02/07/2004 à 13:00, Franck Saint Germain a écrit :
> > et (avec des guillemets ' ' autour de #TITRE) :
et avec des guillemets doubles ?

> >

$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3|4)$}><BOUCLE_2(MOTS){par

> > titre}{","}>'#TITRE'</BOUCLE_2></BOUCLE_1>);
> > print_r($A);

> > J'en conclus que c'est le parseur qui a une bogue.
À mon avis, tu conclues un peu vite :wink:

  Le message de "parse error" qu'il te sort doit te donner le nom du
fichier généré dans le cache.
  Regarde le contenu de ce fichier, pour qu'on ait le contenu exact
de ce qui est généré.

À+, Pif.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip

Le Fri 02/07/2004 à 16:07, Franck Saint Germain a écrit :

Je ne sais pas comment faire pour voir ce qu'il se produit, puisque
www/free.fr/b/f/monsite/CACHE/a/test.1b14b3.NEW ne donne rien
(à vrai dire je suis surpris du var/ devant)

Ça doit correspondre au fichier http://tonsite/CACHE/a/test.1b14b3.NEW
que tu peux voir depuis ton accès ftp dans CACHE/a/test.1b14b3.NEW

À+, Pif.

Merci bien de cette info, je n'avais pas réalisé que j'avais accès au
fichier CACHE
(je n'avais pas prêté attention à liste de répertoire, sous la racine). Du
coup j'ai un peu plus de facilité de voir ce qu'il se passe.

J'ai repris avec des éléments très simples, et j'ai vérifié au passage que
le 3e tableau (le tableau différence, C, $C=array_diff($B,$A):wink: est
correct... (3e ligne ou colonne non vide)
L'affichage est :
mot1,mot2
pour A: Array ( [0] => mot1 [1] => mot2 )
pour B: Array ( [0] => mot1 [1] => mot2 [2] => motX )
pour C: Array ( [2] => motX )

1. Mais dès que {id_article=2}devient {id_article==^(2|3)$}une erreur est
signalée par le parseur, sur cette ligne :
$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3)$}><BOUCLE_2(MOTS){id_article
}{id_mot, par titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>);
(j'ai aussi essayé avec 'TITRE', et "TITRE", avec toujours la même réponse)

2. Je rappelle aussi qu'en mettant des '' je n'ai pas cette erreur signalée
par le parseur
$A=array('<BOUCLE_1(ARTICLES){id_article==^(2|3)$}><BOUCLE_2(MOTS){id_articl
e}{id_mot, par titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>');

et j'obtiens :
mot1,mot2mot3,mot4,mot5,mot6,...
Array ( [0] => mot1,mot2mot3,mot4,mot5,mot6,..)
Array ( [0] => mot1 [1] => mot2 [2] => motX )
Array ( [0] => mot1 [1] => mot2 [2] => motX )

je n'ai donc qu'une ligne ou colonne au premier tableau, et la différence ne
fonctionne plus.(je voudrais avoir motX seulement ici, pour C, comme dans
l'exemple du dessus)
(Au passage, j'ai aussi un problème avec deux mots clés qui se concatènent
(le 2e et le 3e), mais cela n'explique pas le problème du parseur)

J'ai beau tourner et retourner le problème, je ne vois pas une autre
explication qu'une bogue du parseur ou une fonction php non activée chez
Free, qui fait planter le parseur.

3. Qui dit mieux ? Qui voudrait juste vérifier que :
<?php
$A=array('<BOUCLE_1(ARTICLES){id_article==^(2|3)$}><BOUCLE_2(MOTS){id_articl
e}{id_mot, par titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>');
?>
ne lui donne pas d'erreur ? (il faut bien sûr avoir un article 2 et un
article 3, et des mots clés dans ces deux articles)

Merci, par avance
Franck

----- Original Message -----
From: "Christian Lefebvre" <christian.lefebvre@atosorigin.com>
To: <spip@rezo.net>
Sent: Friday, July 02, 2004 4:10 PM
Subject: Re: Fw: bogue du parseur ? Re: [Spip]Re:incompréhension...
articulation entreSPIP etPHP ??

Le Fri 02/07/2004 à 16:07, Franck Saint Germain a écrit :
> Je ne sais pas comment faire pour voir ce qu'il se produit, puisque
> www/free.fr/b/f/monsite/CACHE/a/test.1b14b3.NEW ne donne rien
> (à vrai dire je suis surpris du var/ devant)

Ça doit correspondre au fichier http://tonsite/CACHE/a/test.1b14b3.NEW
que tu peux voir depuis ton accès ftp dans CACHE/a/test.1b14b3.NEW

À+, Pif.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip

Le Fri 02/07/2004 à 17:38, Franck Saint Germain a écrit :

1. Mais dès que {id_article=2}devient {id_article==^(2|3)$}une erreur est
signalée par le parseur, sur cette ligne :
$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3)$}><BOUCLE_2(MOTS){id_article
}{id_mot, par titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>);

  Haaaaaaaaaaa !!!! j'viens de comprendre !
  Il faut que la première boucle aussi sépare les morceaux par
des virgules :
$A=array(
  <BOUCLE_1(ARTICLES){id_article==^(2|3)$}{","}>
    <BOUCLE_2(MOTS){id_article}{id_mot, par titre}{","}>
      "#TITRE"
    </BOUCLE_2>
  </BOUCLE_1>
);

et j'obtiens :
mot1,mot2mot3,mot4,mot5,mot6,...

          ^^
Sinon, c'est là qu'il manque une virgule.

À+, Pif.

merci, effectivement, en ajoutant une virgule dans la 1ère boucle, je n'ai
plus d'erreur parse
... mais je n'obtiens pas ce que je souhaite, car le tableau n'est constitué
que d'un seul élément = la liste des mots clés.

Array ( [0] => mot1,mot2,mot3,etc
Array ( [0] => mot1 [1] => mot2 [2] => motX )
Array ( [0] => mot1 [1] => mot2 [2] => motX

ce qui n'est pas OK (le tableau C ne devrait contenir que motX)

J'ai apparemment une solution, proposée par GaRy de la Mer, qui place
ailleurs l'instruction $A= et surtout qui construit le tableau case par case
$A[#ID_MOT].

Merci beaucoup de toute façon, et le tableau array_diff semble bien
fonctionner.

Franck.

----- Original Message -----
From: "Christian Lefebvre" <christian.lefebvre@atosorigin.com>
To: "Franck Saint Germain" <franck.saintgermain@free.fr>
Cc: <spip@rezo.net>
Sent: Friday, July 02, 2004 7:17 PM
Subject: Re: Fw: bogue du parseur ? Re:[Spip]Re:incompréhension...
articulation entreSPIP etPHP ??

Le Fri 02/07/2004 à 17:38, Franck Saint Germain a écrit :

> 1. Mais dès que {id_article=2}devient {id_article==^(2|3)$}une erreur

est

> signalée par le parseur, sur cette ligne :
>

$A=array(<BOUCLE_1(ARTICLES){id_article==^(2|3)$}><BOUCLE_2(MOTS){id_article

> }{id_mot, par titre}{","}>#TITRE</BOUCLE_2></BOUCLE_1>);

  Haaaaaaaaaaa !!!! j'viens de comprendre !
  Il faut que la première boucle aussi sépare les morceaux par
des virgules :
$A=array(
  <BOUCLE_1(ARTICLES){id_article==^(2|3)$}{","}>
    <BOUCLE_2(MOTS){id_article}{id_mot, par titre}{","}>
      "#TITRE"
    </BOUCLE_2>
  </BOUCLE_1>
);

> et j'obtiens :
> mot1,mot2mot3,mot4,mot5,mot6,...
          ^^
Sinon, c'est là qu'il manque une virgule.

À+, Pif.