У меня проблемы с PHP и Ajax: Я хочу сделать простую страницу, которая показывает ваш пинг в Google, поэтому я попробовал это:
setInterval(function(){
var ping = <?php
$ip = "8.8.8.8";
exec("ping -n 1 $ip", $output, $status);
if (isset($output)){echo $output[2][37] . $output[2][38];}
$output = array();
?>;
document.getElementById("ping").innerHTML = ping;
},100)
Это не сработало (я думаю, что php не актуализируется), поэтому я попытался вызвать php через ajax (я очень новичок в ajax): HTML:
<p id = "ping"></p>
<script>
setInterval(function(){
jQuery.ajax({
url: 'ping.php',
success: function(data){
document.getElementById("ping").innerHTML = data;
},
});
},100)
</script>
PHP:
<?php
function ping(){
$ip = "8.8.8.8";
exec("ping -n 1 $ip", $output, $status);
if (isset($output)){echo $output[2][37] . $output[2][38];}
}
?>
Ничего не появляется. Что я делаю неправильно? (Извините, если я допустил ошибки в английском) Спасибо
Боковое примечание: вы МОЖЕТЕ захотеть заменить 100 на 1000 (или даже больше). Потому что 1000 = интервал в 1 секунду. Другой будет хлопать по серверу 10 раз в секунду, и каждый вызов ajax будет карабкаться друг над другом в зависимости от того, кто быстрее вернется с результатами (поскольку здесь нет цепочек обещаний).
Благодарим Вас за разъяснения! Я сохранил интервал 100 мс, я просто сделал это, чтобы решить проблему: if (ping! = Undefined) {...}






Думаю, я только что разобрался сам: я просто удалил функцию () ping в .PHP:
<?php
$ip = "8.8.8.8";
exec("ping -n 1 $ip", $output, $status);
if (isset($output)){echo $output[2][37] . $output[2][38];}
?>
Работает отлично
вы также могли «вызвать» функцию.
Просто чтобы помочь вам понять, почему первый пример не сработал: PHP выполняет серверную часть (для генерации html) до того, как клиент получит этот html. JS происходит на клиенте после того, как он получает сгенерированный html из php. Итак, как только php выведет этот результат в этот
pingjs var ... js будет использовать это значение только на каждом интервале js. Итак, ваш метод ajax был правильным способом получить «свежие» данные с php для использования.