Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1208 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Incure php dans javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Incure php dans javascript

n°1303897
ramkin
Posté le 12-02-2006 à 21:53:28  profilanswer
 

Salut à tous,
suite à un post ici:
http://forum.hardware.fr/hardwaref [...] 4748-1.htm
 
j'ai un autre problème.
 
Je n'arrive pas à faire lire du texte ouvert en php lorque la varible est renvoyée en javascript. Je m'explique, un exemple, ce code ne marche pas:

Citation :

<SCRIPT type="text/javascript">
<!--
 
temp = "<?php
  $tab = file ('texte.txt');
  echo $tab[1];
  ?>";
document.write(temp);
 
// -->
</SCRIPT>


 
J'ai essayé avec toutes les fonctions php faisant appel à du texte genre readfile() et pareil, ça ne renvoie rien.  :??:  
 
Si quelqu'un a une idée....
 
 :sol:

mood
Publicité
Posté le 12-02-2006 à 21:53:28  profilanswer
 

n°1303913
phenxdesig​n
Posté le 12-02-2006 à 22:23:26  profilanswer
 

est ce que ce code est dans un fichier PHP ?
si non, ça marchera pas
et il faut absolument echapper les ' et les " si tu veux que ça marche ...

n°1303922
ramkin
Posté le 12-02-2006 à 22:34:59  profilanswer
 

phenxdesign a écrit :

est ce que ce code est dans un fichier PHP ?
si non, ça marchera pas
et il faut absolument echapper les ' et les " si tu veux que ça marche ...


 
Oui bien sur, c'est dans un fichier .php. Et le code seul:

Citation :

<?php
  $tab = file ('texte.txt');
  echo $tab[1];
  ?>


fonctionne très bien.
 
Qu'est-ce que tu veux dire par --  echapper les ' et les "  -- ?

n°1303930
phenxdesig​n
Posté le 12-02-2006 à 22:59:13  profilanswer
 

il faut que dans la chaine faite par le echo, qui sera dans le fichier html, et entre les quotes du javascript, tu aie \' au lieu de ' et \" au lieu de "
exemple :
pour le texte :  
salut, c'est moi , ça va "bien" ?
 
tu auras :

Code :
  1. <SCRIPT type="text/javascript">
  2. <!--
  3. temp = "salut, c\'est moi , ça va \"bien\" ?";
  4. document.write(temp);
  5. // -->
  6. </SCRIPT>

n°1303931
phenxdesig​n
Posté le 12-02-2006 à 23:01:42  profilanswer
 

pour les simple quotes ( ' ) je suis pas sûr...
et je crois quen JS, les chaines de caracteres sont delimitées par ' et non "

n°1303933
ramkin
Posté le 12-02-2006 à 23:04:46  profilanswer
 

OK, je comprends ce que tu veux dire.
Mais le problème n'est pas là puisque dans la chaine renvoyé par le echo il n'y a ni quote ni double quote.

n°1303943
phenxdesig​n
Posté le 12-02-2006 à 23:10:25  profilanswer
 

je teste chez moi...

n°1303947
phenxdesig​n
Posté le 12-02-2006 à 23:15:42  profilanswer
 

:lol:  :lol:  
essaie avec un 0 dans $tab[]
tu prends la 2eme ligne, la :D

n°1303949
ramkin
Posté le 12-02-2006 à 23:19:20  profilanswer
 

phenxdesign a écrit :

:lol:  :lol:  
essaie avec un 0 dans $tab[]
tu prends la 2eme ligne, la :D


 
Oui je sais.... Et le fichier texte.txt en question a bien plusieurs ligne.
Et comme je disais, le simple code suivant:

Citation :

<?php
  $tab = file ('texte.txt');
  echo $tab[1];
  ?>


renvoie bien ce qui est prévu....
 
C'est lorsque l'echo est passé dans le javascript que ça coince.

n°1303956
phenxdesig​n
Posté le 12-02-2006 à 23:30:04  profilanswer
 

chez moi ça coince pas du tout ...

mood
Publicité
Posté le 12-02-2006 à 23:30:04  profilanswer
 

n°1303957
phenxdesig​n
Posté le 12-02-2006 à 23:30:28  profilanswer
 

pti test avec ça :
 
<html>
<body><SCRIPT type="text/javascript">
<!--
 
var temp = "<?php
  $tab = file ('texte.txt');
  echo $tab[0];
  ?>";
document.write(temp);
 
// -->
</SCRIPT>
</body>
</html>

n°1303959
phenxdesig​n
Posté le 12-02-2006 à 23:34:32  profilanswer
 

resultat :
 
<html>
<body><SCRIPT type="text/javascript">
<!--
 
var temp = "rtherjthvzetzertzet  e thgc rthe r r thc rye h h";
document.write(temp);
 
// -->
</SCRIPT>
</body>
</html>

n°1303961
phenxdesig​n
Posté le 12-02-2006 à 23:40:27  profilanswer
 

essaie avec cette fonction :
file_get_contents
 
elle a les memes parametres (le premier suffit) ça met tout le texte du fichier dans une chaine, pas un tableau

n°1303970
ramkin
Posté le 12-02-2006 à 23:59:58  profilanswer
 

Vraiment merci pour l'effort PhenXDesign!  :hello:  
 
Mais là j'hallucine! J'ai recopié ton code (au cas où je sois vraiment miraud...) et ça marche toujours pas.  :heink:  
 
Je regarde la fonction que tu m'as donné, même si c'est pas ce que je veux, car j'ai vraiment besoin d'un tableau pour récuppérer chaque ligne de mon texte séparément....
 
Ca m'iniiiiiiiiirve!!!!  :fou:  
 
 :sol:

n°1303971
ramkin
Posté le 13-02-2006 à 00:06:20  profilanswer
 

Bon alors.....
 
Je viens d'essayer file_get_contents et y a du changemnt (si on peut dire.....).
 
Si je laisse dans l'echo la variable $tab, ça fait pareil, c'est-à-dire rien.
Par contre, si je mets par exemple $tab[4], ça marche en affichant la 4ème lettre du texte.
 
 :pt1cable:  Ca te parle à toi?

n°1304002
phenxdesig​n
Posté le 13-02-2006 à 09:08:27  profilanswer
 

hum ... c'est normal que ça affiche la 4eme lettre du texte, mais c'est bizarre que ça n'affiche pas le texte entier avec $tab ...
pour le file(), voila un code, si tu veux mattre toutes les lignes :  
 

<html>
<body><SCRIPT type="text/javascript">
<!--
 
var temp = '<?php
  $tab = file ('texte.txt');
foreach ($tab as $numero_ligne => $ligne) {
  $ligne = str_replace("\r\n", "\\r\\n", $ligne); // pour echapper les retours a la ligne
  echo $ligne;
} ?>';
document.write(temp);
 
// -->
</SCRIPT>
</body>
</html>

Message cité 1 fois
Message édité par phenxdesign le 13-02-2006 à 09:08:52
n°1304032
cinocks
Posté le 13-02-2006 à 09:55:50  profilanswer
 

Mais euh, c'est ton javascript qui tente de lire du php. Si c'est le cas tu peux essayer longtemps. Javascript coté utilisateur, php sur le serveur.


---------------
MZP est de retour
n°1304180
ramkin
Posté le 13-02-2006 à 11:46:58  profilanswer
 

Salut tous,  :hello:  
 

phenxdesign a écrit :

hum ... c'est normal que ça affiche la 4eme lettre du texte, mais c'est bizarre que ça n'affiche pas le texte entier avec $tab ...
pour le file(), voila un code, si tu veux mattre toutes les lignes :  
 

<html>
<body><SCRIPT type="text/javascript">
<!--
 
var temp = '<?php
  $tab = file ('texte.txt');
foreach ($tab as $numero_ligne => $ligne) {
  $ligne = str_replace("\r\n", "\\r\\n", $ligne); // pour echapper les retours a la ligne
  echo $ligne;
} ?>';
document.write(temp);
 
// -->
</SCRIPT>
</body>
</html>



 
Bon, beh voilà, ça, ça marche!  :??:  :??: . La vache, c'est quoi ce bins??
Bon beh mille merci pour ce code.
Je vais peut-être abuser, mais comment je fais à partir de ce code pour récuppérer juste la ligne x? Parce que c'est pour ça que je voulais un tableau, donc un file(), parce que j'ai besoin de récuppérer chaque ligne séparément...
 
cinocks, je vois pas ce que tu veux dire....  :??:  
 
 :sol:  

n°1304334
phenxdesig​n
Posté le 13-02-2006 à 14:19:41  profilanswer
 

Ben en fait, ce qui change vraiment, c'est  

Code :
  1. $ligne = str_replace("\r\n", "\\r\\n", $ligne); // pour echapper les retours a la ligne


 
qui pourrait etre meme mieux :  

Code :
  1. $ligne = str_replace("\r", "\\r", $ligne);
  2. $ligne = str_replace("\n", "\\n", $ligne);
  3. // pour echapper les retours a la ligne


 
Mais dans le code source, tu avais bien la ligne d'ecrite ?
Javascript n'accepte pas les chaines de carac avec un retour a la ligne dedans, donc on doit les echapper ...
pour ce qu'a dit cinocks, il n'a pas comprit le truc, en fait, le code PHP est interpreté par le serveur avant d'etre envoyé vers le navigateur, donc le javascript se retrouve toujours avec le code généré par le serveur a partir du PHP ...

n°1304337
phenxdesig​n
Posté le 13-02-2006 à 14:21:24  profilanswer
 

Donc je reprends :  

<html>
<body><SCRIPT type="text/javascript">
<!--
 
var temp = '<?php
  $tab = file ('texte.txt');
  $ligne = $tab[0];
  $ligne = str_replace("\r", "\\r", $ligne);
  $ligne = str_replace("\n", "\\n", $ligne);
  echo $ligne;
} ?>';
document.write(temp);
 
// -->
</SCRIPT>
</body>
</html>


Message édité par phenxdesign le 13-02-2006 à 14:21:37
n°1305194
ramkin
Posté le 14-02-2006 à 14:13:40  profilanswer
 

OK PhenXDesign, c'est parfait, et ça marche!  :jap:  
 
La suite..... dans un autre post... :p  
 
 :sol:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Incure php dans javascript

 

Sujets relatifs
Changer la propriété d'une balise avec du JavascriptJavascript VS Php
[Javascript] Apparition, disparition de menu et mouseoveratteindre le parent en javascript
[PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaireproblème saisie semi-automatique (autocomplete) avec javascript
Validation spécial en javascriptJavascript non compatible IE
Souci en javascript avec un div : drag & drop !?petit probleme javascript
Plus de sujets relatifs à : Incure php dans javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR