THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 $parsephp = 1

(31-07-2007 19:53:05)


Bonjour!

Je ne sais pas si je poste dans la bonne section ou si j'aurais dû choisir la section "utilisation". Si jamais, je demande de m'excuser d'avance... ;o)

Ma question porte sur la paramètre $parsephp qui est déclaré dans les fichiers .php.

J'ai remarqué que si $parsephp = 1 alors le "moteur" (lignes 279 à 273 dans la version 1.3.2pre1) va exécuter l'éventuel code PHP dans le fichier squelette (celui renseigné par la variable $fond), ce qui est bien pratique dans mon cas et probablement dans le cas de nombreux développeurs PHP qui vont plus vite en codant directeemtn des petits morceaux de PHP ou pour exécuter n'importe quelle code PHP qui n'a peut-être rien à voir avec Thelia.

Ce que je ne comprends pas, c'est pourquoi moteur.php (ligne 269) fait un

$res=str_replace('<'.'?php','<'.'?',$res);

Je comprends que c'est une question de "short open tag" au niveau de la configuration de PHP mais il me semble plus compatible de ne pas remplacer les tags <?php ... ?> par <? ... ?> puisque le spremiers seront troujours compatibles, mais pas les seconds.

Pour ma part, j'ai désactivé cette ligne (269) mais peut-être je n'ai pas pensé à tout et il y a une bonne raison à ce remplacement et vous me conseillez une autre approche?

Merci pour vos réactions...

  • yoan
  • Cofondateur Thelia

Offline

#2 Re: $parsephp = 1

(01-08-2007 08:38:54)


http://fr.php.net/manual/fr/function.eval.php
Regarde le commentaire du 10-Sep-2005 07:23 (matt at mattsoft dot net)

"using < ?php within eval does not work, but < ? does. in case there is html in the file loaded, the script doesn't remove the < ?php and ? >, but insted adds ? > and < ? around the code loaded from the file. it's simple and works very well. I also broke up the tags in the 3rd and 4th lines of code to keep from having problems if the lines are commented out."

C'est du à la fonction eval()


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#3 Re: $parsephp = 1

(01-08-2007 17:48:13)


OK, merci pour cet éclaircissement...

Mais est-ce encore valable pour PHP 5? Car sur mon envirennoement de développement WAMP / PHP 5 <?php avec eval() fonctionne très bien, j'ai du commenter la ligne "$res=str_replace('<'.'?php','<'.'?',$res);" pour que ça fonctionne...