在php代码运行之前显示html

时间:2016-02-22 12:10:02

标签: php html

我有一个覆盆子pi,可以在启动时打开一个网页。此页面加载包括一个监听udp端口输入的php页面。 当收到输入时,我想要加载另一个页面,但是我在执行此操作时遇到了麻烦。

这是index.html

<html style="background-color:#0085b3;">
<body>
  <img src="bg.jpg"/>
  <div id="content"></div>
</body>

<script src="scripts/jquery.min.js"></script>
<script>
$(document).ready(function(){
 $("#content").load("udp.php");
});
</script>
</html>

和udp.php

<?php

session_start();

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '10.10.10.25', 5000);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

$buf = preg_replace('/\s+/', '', $buf);

$conn = null;

socket_close($socket);

die("<script>location.href = 'http://10.10.10.20/main.php'</script>");
?>

发生的事情是模具功能在树莓上回显,浏览器没有加载main.php网页

我尝试使用单个php页面显示图像然后收听输入,但是php代码立即运行并且只在收到一些输入后显示html。

的index.php

<?php

echo '<html style="background-color:#0085b3;">';
echo '<body>';
echo '<img src="bg.jpg"/>';
echo '</body>';
echo '</html>';

session_start();

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '10.10.10.25', 5000);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

$buf = preg_replace('/\s+/', '', $buf);

$conn = null;

socket_close($socket);

die("<script>location.href = 'http://localhost/plc/main.php'</script>");
?>

1 个答案:

答案 0 :(得分:0)

PHP首先执行,然后执行HTML,最后执行javascript。

  • 您向服务器发送请求,服务器执行您的脚本
  • 然后将渲染的html返回给浏览器,浏览器解析HTML(内联javascript 执行)
  • 最后执行外部包含的javascript文件,按顺序执行。