Changer la valeur d'une variable dans un fichier - avec "ereg"

hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009 - 30 mai 2009 à 16:01
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 30 mai 2009 à 18:53
Bonjour à tous,

voila j'aimerais pouvoir changer la valeur d'une variable dans un fichier javascript :

blabla
{
......       
        xmlhttp.send(data);
       setTimeout('rafraichir()', 1000);
......
}

en gros je voudrais que mon script php parcours mon fichier JS et modifier la valeur '1000'.

Je galère un peu avec la fonction ereg :s
Pour l'instant j'arrive à ouvrir mon fichier mais je ne sait pas quoi mettre comme instruction à eregi pour me trouver ma valeur 1000 :s

$fp = fopen("JS/test.js","r"); //lecture du fichier
while (!feof($fp)) { //on parcoure toutes les lignes
  $page .= fgets($fp, 4096); // lecture du contenu de la ligne
}
$titre = eregi("??????",$page,$regs); //on isole le terme

echo $regs[1];

fclose($fp);

Le but du script sera de modifier cette valeur par autre chose.

enfin si quelqu'un peu m'aider
Merci

3 réponses

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
30 mai 2009 à 17:00
Bonjour,

Si cette valeur ne doit être changée qu'une fois, autant éditer directement le javascript...

Si par contre c'ets une modification très fréquente, la solution la plus simple  parec que du '1000', un script peut très bien en avoir plusieurs, est de modifier une fois pour toute sle javascript en remplaçant ton falmeux 1000 par, par exemple, __1000__

et ensuite:

$page = file_get_contents( './JS/test.js' ) ;
$page = str_replace( '__1000__', '25000', $page ) ;
0
hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009
30 mai 2009 à 18:38
Merci de ta réponse,

mais le soucis est que si je modifie mon fichir avec __1000__, mais fonction js va être en erreur.

enfaite, j'ai besoin de ce code pour faire une petit interface de configuration.

Je pensé parcourir mon fichier,
trouvé la ligne : setTimeout('rafraichir()', 1000);
et la modifier par la valeur idiqué par l'admin
: setTimeout('rafraichir()', '.$valeur_conf.');

Mais bon je ne sais pas comment arrivé à faire ca :s
j'ai bien trouvé des codes pour ajouter des ligne a un fichier mais rien de probant.

si quelqu'un à une idée :)

yes !
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
30 mai 2009 à 18:53
Ton fichier ne sera jamais en erreur si tu as une version du JS avec la macro definition, et une autre en exploitation.
S'il s'agit de configuration, là c'est autre chose et plus simple.

$newValue = 25000 ;
$page = file_get_contents( './JS/test.js' ) ;
$page = str_replace( "setTimeout('rafraichir()', 1000)", "setTimeout('rafraichir()', $newValue)", $page ) ;
file_put_contents( './JS/test.js', $page ) ;

Les regex doivent également pouvoir servir, mais vérifiées avant que tu n'aies bien qu'une seule et unique fois ton fatidique 1000 dans le source...
0
Rejoignez-nous