V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hwhtj
V2EX  ›  PHP

求助: PHP 错误,请高手帮我改写下面的 PHP 代码

  •  
  •   hwhtj · 1 天前 · 607 次点击

    `<?php

    $nowtime=time();

    $pastsec = $nowtime - $_GET["t"];

    if($pastsec<600) { exit; //10 分钟更新一次,时间可以自己调整 } ob_start(); //打开缓冲区 include("index.php"); $content = ob_get_contents(); //得到缓冲区的内容 $content .= "\n<script language=javascript src='/index/thumb.png' data-original="html.php?t=".$nowtime.""></script>"; //加上调用更新程序的代码

    file_put_contents("index.html",$content); if (!function_exists("file_put_contents")) { function file_put_contents($fn,$fs) { $fp=fopen($fn,"w+"); fputs($fp,$fs); fclose($fp);
    } } ?>`

    以上代码用于生成 typecho 首页 index.html ,运行时提示错误: Warning: Undefined array key "t" in /www/onlineps.top/learn/html.php on line 3 求助高手帮我改写以上代码。

    14 条回复
    ejin
        1
    ejin  
       1 天前
    前面改成这样

    <?php
    if(isset($_GET["t"]) ===false){
    die();
    }
    foam
        2
    foam  
       16 小时 47 分钟前 via Android
    为什么不用 AI ?
    hwhtj
        3
    hwhtj  
    OP
       15 小时 22 分钟前
    @ejin 这样改了之后,这个 php 就不运行了,die 了,无法生成 index.html 了
    Sunzehui
        4
    Sunzehui  
       15 小时 12 分钟前
    关掉 php 的 warning 报错就行了
    vishun
        5
    vishun  
       15 小时 11 分钟前
    @hwhtj 那你就传递 t 这个参数啊,你不传递不就 die 了嘛?
    hwhtj
        6
    hwhtj  
    OP
       14 小时 58 分钟前
    v2048
        7
    v2048  
       14 小时 46 分钟前
    @hwhtj 是的。$_GET["t"]的意思就是获取链接里 key 为 t 的数据。错误提示意思是:$_GET 这个数组里没有 t 这个 key
    v2048
        8
    v2048  
       14 小时 43 分钟前
    其实这个事,你完全可以找个 ai 工具,把上面这一点点代码放进去提问。免费可用的非常多,例如豆包、元宝、kimi 、deepseek 等等。对于这个事的处理,预计应该都能胜任。
    v2048
        9
    v2048  
       14 小时 39 分钟前
    顺便又想多说点:新手面对很多基本、简单的问题时,向人提问不如向 ai 提问。现在免费好用的 ai 工具很多,自己用用判断效果,而不是仅看别人评论,情况不一定一样。
    1 、它们会认真、及时、连续回答;
    2 、更重要的是:回复(非“回答”)不会让新手感到尴尬/不适。
    yuanxing008
        10
    yuanxing008  
       14 小时 1 分钟前
    看逻辑 t 参数应该是页面生成的时间,要么是后端传过去给前端,前端带着请求到后端,要么就是前端从静态页存储站可以取到文件更新时间然后带着请求到后端。
    ejin
        11
    ejin  
       13 小时 50 分钟前
    重新看了一下,好家伙,折叠代码后代码跑到注释后面了,代码格式化工具看了都摇头说救不了一点。
    格式化好后一看,好家伙,要改的地方还蛮多,类似伪代码,意思表达了,但代码错漏百出,差不多属于是要重新实现了。

    要不你还是让 AI 上吧。
    hwhtj
        12
    hwhtj  
    OP
       13 小时 48 分钟前
    ejin
        13
    ejin  
       12 小时 24 分钟前
    我想了想,这种程序也不能说没有意义,所以帮你修复了,在我的 Wordpress 上测试通过,初次打开 html.php ,后续就是自动的了,你自己试试看。

    嗯,太长看了烦,代码就一行。

    <?php $nowtime=time();if(isset($_GET["t"]) && is_numeric($_GET["t"]) && $nowtime - $_GET["t"]<600){exit;} ob_start();include("index.php");$content = ob_get_contents(). "\n<script type='javascript' src='html.php?".$nowtime."' ></script>";ob_end_clean();file_put_contents("index.html", $content);?>
    hwhtj
        14
    hwhtj  
    OP
       10 小时 16 分钟前
    @ejin 谢谢你的帮助
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1287 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:14 · PVG 01:14 · LAX 10:14 · JFK 13:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.