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

Это мой код, может ли кто-нибудь сказать мне, почему оповещение приходит пустым?Код на php не работает над javascript

+0

Что представляет собой "teste.php"? –

+0

Что такое 'fgets ($ file)'? –

+1

Кроме того, fopen получит содержимое файла php, оно не будет выполнено, если это то, что вы хотите. –

ответ

0

Предполагая, что вы имеете в виду, что вы хотите, предупреждение всплывал из браузера, когда сервер достигает определенной точки в коде PHP, ответ «нет», вы не можете

В то время как сервер запускает ваш php-код, нет контакта с браузером (пока ответ не начнет возвращаться). Бывают ситуации, когда сервер может передавать потоковое содержимое в браузер, и в таком случае можно было бы иметь согласованное соглашение для сервера, чтобы пометить поток контента сообщениями, которые необходимо немедленно предупредить, но Я не думаю, что это то, о чем вы просите здесь.

+0

Вообще-то, мне было весело с этим раньше. Если вам интересно, проверьте [this] (http://en.wikipedia.org/wiki/Push_technology#Long_polling), вы можете загрузить страницу в браузере и отправить ей небольшие теги скриптов, которые управляют тем, что браузер «на лету». –

0

В скрипте вы, возможно, уже находитесь на EOF.

Чтобы получить ваши spected результаты попробовать

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

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

или

$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 перемещает внутренний указатель вперед каждый раз, когда она вызывается. Я предполагаю, что ваш файл представляет собой одну строку текста.

Таким образом, он считывается в $members, а затем указатель находится в конце файла. Поэтому следующий звонок к нему (тот, который помещен в предупреждение) ничего не возвращает.

Попробуйте $tmp = fgets($file); $members[] = $tmp; ... alert('<?php echo $tmp; ?>');

0

Это мой код, может кто-нибудь сказать мне, почему тревога приходит пустой?

<?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>"; 

} 

?> 

Очень поздно я знаю. Я смотрю на что-то, что связано с fopen, и подумал, что я добавлю решение, потому что случайно ударяю по нему.

Смежные вопросы