在 php 中发送变量文件名需要从 html


Sending a variable filename in php require from html

我有这个从html调用php文件。

    <div id="readings">
        <?php require("readenglish.php"); ?>
        <?php require("readfrench.php"); ?>
        <?php require("readspanish.php"); ?>
    </div>

从 php 文件中获取日期很容易,但我必须发送客户端日期。我想在文件名中添加一个带有客户端日期的字符串。

    <div id="readings" style="position: relative; top: -380px; width:100%; height:100%; overflow:hidden; font: 0.9em arial, sans-serif;">
        <?php require("readenglish.php?date="+datestring); ?>
        <?php require("readfrench.php?date="+datestring); ?>
        <?php require("readspanish.php?date="+datestring); ?>
    </div>

这能做到吗?我必须在javascript中计算日期。如果我不必去阿贾克斯就好了。 这将需要完全更改代码结构。

> 1/ 你不是"从 HTML 调用 PHP",而是将 PHP 内容添加到你的文件中,当这个 PHP 被解析时,服务器会将 HTML 发送到客户端:HTML 是 PHP 进程的结果

2/ 获取客户端日期意味着,如果您的客户端将其日期更改为 1990 年,您将相信您收到了 90 年代的请求,而您的服务器的日期与它在日志中写入的其他日期一致

3/如果你真的需要客户端的日期,你唯一的选择是使用Ajax请求,URL中的GET参数,或者带有POST(或GET)数据的HTML表单;在所有这些情况下,你需要用Javascript的Date对象填充数据。

解决方案 A:在页面开头有一个 JS,如果未给出日期,则会重新加载日期。像这样:

<?php if(empty($_REQUEST['date'])) { ?>
  <script type='text/javascript'>
    var d=new Date();
    window.location.href+='?date='+d.toISOString();
  </script>
  <?php die('Reloading with parameters...'); ?>
<?php } ?>

如果您喜欢这种方式,您可以调整此解决方案以填写表单并使用 JS 动态提交所有表单,但更多的是键入...

解决方案 B:使用 Ajax 检索和插入 readxxx.php并传递日期参数,但您不想这样做(尽管我不明白为什么它"需要完全更改代码结构")

解决方案C(我最喜欢的):如果你使用的是PHP 5.1+,你可以使用$_SERVER['REQUEST_TIME'],它会给你服务器客户端请求开始的时间(即服务器收到)

解决方案 D:使用 (i) 由 JS 构建的帧,将日期作为 src 属性中的参数(这需要完全更改代码结构^^)

希望这有帮助。

答案很简单:饼干!