2013-06-20 6 views
0
$file = fopen("teste.php","r"); 
$members[]=""; 
$i=0; 
while (!feof($file)) { 
    $members[] = fgets($file); 
    ?> 
     <script> 
      alert('<?php echo fgets($file); ?>'); 
     </script> 
    <?php 
} 

Ceci est mon code, peut-on me dire pourquoi l'alerte est vide?Le code sur php ne fonctionne pas sur javascript

+0

Quel est le contenu de "teste.php"? –

+0

qu'est-ce que 'fgets ($ file)'? –

+1

En outre, fopen obtiendra le contenu du fichier php, il ne sera pas exécuté, si c'est ce que vous voulez. –

Répondre

0

Si l'on suppose que ce que vous voulez dire que vous voulez une alerte pour faire apparaître à partir du navigateur lorsque le serveur atteint un certain point dans votre code php, la réponse est « non », vous ne pouvez pas

Alors que le le serveur exécute votre code PHP, il n'y a pas de contact avec le navigateur (jusqu'à ce que la réponse commence à revenir). Il existe des situations dans lesquelles un serveur peut retransmettre du contenu vers le navigateur, et dans ce cas il serait possible d'avoir une convention convenue pour que le serveur marque le flux de contenu avec des messages à alerter immédiatement, mais Je ne pense pas que ce soit ce que vous demandez ici.

+0

En fait, je me suis amusé avec ça avant. Si vous êtes intéressé, cochez [this] (http://en.wikipedia.org/wiki/Push_technology#Long_polling), vous pouvez charger une page dans le navigateur et lui envoyer de petites balises de script qui contrôlent le navigateur fait à la volée. –

0

dans le script, vous pouvez déjà être sur EOF.

Pour obtenir vos résultats spected essayer

$file = fopen("teste.php","r"); 
    $members[]=""; 
    $i=0; 
    while (!feof($file)) { 

     ?> 
      <script> 
       alert('<?php echo fgets($file); ?>'); 
      </script> 
     <?php 
    } 

ou

$file = fopen("teste.php","r"); 
    $members[]=""; 
    $i=0; 
    while (!feof($file)) { 
     $members[] = fgets($file); 
     ?> 
      <script> 
       alert('<?php echo fgets($file); ?>'); 
      </script> 
     <?php 
    } 

0
$members[] = fgets($file); 
?> 
    <script> 
     alert('<?php echo fgets($file); ?>'); 
    </script> 

fgets déplace le pointeur interne vers l'avant à chaque fois qu'il est appelé. Je suppose que votre fichier est une seule ligne de texte.

Donc, il est en cours de lecture dans $members, puis le pointeur se trouve à la fin du fichier. Par conséquent, l'appel suivant (celui qui est mis en alerte) ne retourne rien.

Essayez $tmp = fgets($file); $members[] = $tmp; ... alert('<?php echo $tmp; ?>');

0

Ceci est mon code, certains peuvent me dire pourquoi l'alerte arrive vide?

<?php 

$file = fopen("teste.php","r"); 
$members[]=""; 
$i=0; 
while (!feof($file)) 
{ 
    $line = fgets($file); //move the cursor 
    $members[] = $line; 

     echo "<script>"; 
     echo "alert($line);"; 
     echo "</script>"; 

} 

?> 

Très tard je sais. Je regarde quelque chose qui a à voir avec fopen et je pensais que j'ajouterais la solution parce que je cam par-dessus ceci par accident.

Questions connexes