• 395阅读
  • 46回复

24节气信息文档内容 [复制链接] [手机版]

上一主题 下一主题
在线zhangjingyu

只看该作者 20楼 发表于: 2025-01-09 20:12:48 星期四  点亮(0)
说说这三个2024年末准备放到后台自动执行的任务吧。本地测试,倒是不难,因为直接访问文件就可以看到执行结果,哪里需要修改,哪里出错了,需要添加或者删除什么,都可以随时修改,直到自己认为可以了。但把它们写成任务文件,上传到家园论坛,让后台自动执行,就很不顺利了,过程相当的难受。

年前无事,看到有一个心情签到插件,就本地调试了一番,然后在家园论坛安装。其实这个插件并没有多少实际意义,无非就是增加了一些看起来不那么水的水帖而已。后来想到这些,就决定写一个任务文件定期把主题移动到老旧废帖版块。
41楼 发表于: 2024-12-27 18:54:51 星期五??点亮(0) 来自:山东省聊城市 移动
虽然这个插件发的帖子不算纯水帖,但也基本差不多吧,没多少实际内容。所以,我想写一个计划任务,每天把几天前的主题移动到老旧废帖版块,也就是只保留最近几天的水帖。想法有了,实现可能就得需要时间了。
起初的思路是,想把单一的一个主题找出来(任务每天执行的结果就是只有一个主题符合移动的条件。这个插件每天只发一个签到主题),直到本月3号按类移动才是正确的简洁明了的做法(心情签到主题的frommob字段的值被标记为“1”,按这个条件移动,并不需要查询数据表)。直到3号或者4号才把这个任务调试成功。其实到最后,只有3行主要代码。一行调用global.php文件,因为后面的更新语句需要这个文件的支持。最难的应该就是这行代码,文件路径一直没研究明白,所以代码不能完整执行,任务失败。一行设定一个时间点。最后就是按条件直接修改版块fid完成主题的移动。
  1. <?php
  2. !function_exists('readover') && exit('Forbidden');
  3. require_once (R_P.'global.php');
  4. $shijian=$tdtime-86400*2;
  5. $db -> update("UPDATE pw_threads set fid='28' where fid='48' and frommob='1' and postdate<'$shijian'");
  6. ?>


过程记录于另外一个主题,过程很无奈(尤其是87到89楼),估计也没人看。
心情签到
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 21楼 发表于: 2025-01-09 21:11:38 星期四  点亮(0)
翻了下论坛帖子,节气图片查看提醒任务已经有5年多了。
沙发  发表于: 2019-12-23 10:05:38 星期一  点亮(0) 来自:江苏省 移动
刚刚用论坛数据备份提醒文件修改了一个查看登录页24节气图片的文件,本地测试中,成功后上传到家园论坛。怕自己忘了,用计划任务提醒下。
板凳  发表于: 2019-12-23 10:09:39 星期一  点亮(0) 来自:江苏省 移动
系统通知  (2019-12-23 10:07)
2020年登录页节气图片查看提醒
查看后请在主题3624回复,并修改计划任务执行时间为下个节气日期。以下是节气信息:
(此处省略,内容见主楼)
http://www.vtu425.com/read-htm-tid-3624.html

直到此次修改前,基本没有变过。
系统通知  (2024-12-21 02:31)
2024年登录页节气图片查看提醒
查看后请在主题3624回复,并修改计划任务执行时间为下个节气日期。以下是节气信息:
(此处节气信息内容省略)
以上为2024年节气信息。本文件require/plan/jieqi.php,节气文件为images/login/bg/24jieqi.txt。
这个任务的执行时间是在后台手动设定的,所以后来就懒得再改了。此次修改主要是想用另外的任务自动更新这个任务的执行时间(日期来自节气文档)。然而,直到最后,这个修改任务(节气图片查看提醒任务jieqi.php)的任务也没调试成功,最后是通过每月两次定期通知用手动访问文件的方式来修改jieqi.php任务的执行时间的,算是自动加手动结合的方式达到我的目的。先来说,这个jieqi.php任务的修改。

不查不知道,一翻论坛帖子,这个任务竟然有5年的时间了。一直都是单一的提醒内容,此次修改增加了可以发给多个指定的用户,还有:
测试在消息内容中添加链接成功!为什么想到这个?人生在世,不过几十年,这个论坛能存在多久,我不知道,但至少在我有生之年会一直在,那以后呢?虽然孩子对这个家园论坛不关心,但以后也许还是要交给他继续打理,有些地方(文件)还是要修改的,比如24节气文档文件(24jieqi.txt)。我能想到的,我需要说明如何改,让他知道该如何改。所以,本主题以后会有一个如何改节气文档和这个节气图片查看提醒任务文件的菜鸟教程。至于它的执行时间(日期来自节气文档)不用管,因为我已经用另外的任务文件自动修改。但节气文档还是需要修改的,否则节气日期会对不上。
又写了节气图片查看提醒任务及节气文档修改方法后来又添加了节气列表关联数组,以便在通知标题里把日期和节气名显示出来。

现在的节气图片查看提醒任务jieqi.php执行后的通知内容也不多,但关键信息基本都呈现了(下面是调试期间收到的通知内容,实际本月的小寒为5号):

2025年1月8日登录页小寒节气图片查看提醒
2025年起,本计划任务执行时间由另外的任务自动更新。
以下是本月节气信息:
0108~2423.jpg+0120~2424.jpg
================================
更多修改信息,可以看这里了解


链接从上面提到的教程换成了本主题,因为教程无用了——这个节气图片查看提醒任务文件jieqi.php的内容基本不用更新了,中间的节气信息以及标题中的年月日和节气名称已经用代码自动输出。节气文档也不用孩子自己修改了,我自己更新到了2128年,以后还会用一些时间把每年的节气信息单独放到以年份命名的节气文档中。

至于这个任务到底是什么时候调试成功的,不记得了,因为调试期间代码总是改了验证,再改再验证,不定什么时候就通过了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 22楼 发表于: 2025-01-09 22:33:55 星期四  点亮(0)
至于修改节气图片查看提醒任务jieqi.php的任务,到现在也没调试成功,目前是上面说的自动通知加手动访问文件修改。本主题前面的帖子里有一些记录。但心里还是很不甘心,主要代码来自jieqi.php,但为什么就不能执行呢?为什么放到这个文件里就修改不了jieqi.php的执行时间呢?也许,有时间还会继续尝试修改,直到最后的成功或者最后的彻底决定放弃。后台任务可以自动执行,现在却是收到通知后再访问文件修改,不是完全不用管的那种,尽管手动修改jieqi.php执行时间的文件自认为也写得还可以。

2025年1月节气图片查看提醒任务执行时间正确!

点击这里回到论坛首页

这是执行时间已经修改的输出内容,如果没有修改就是另外一个内容:用链接的另外一个文件修改执行时间。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 23楼 发表于: 2025-01-10 22:40:10 星期五  点亮(0)
为了弄明白自己到底哪里错了,也尝试去了解代码中相关语句的含义和用法,比如:什么是function_exists()以及Include require include_once require_once 的区别还有,D_P变量和R_P变量这里说“首先要查看global.php文件中的D_P变量,官方默认的此变量应该指向和R_P变量是同一个文件夹即网站的根目录”我的理解一直是“/”,直到我在通知内容也使用了“R_P”来表示家园论坛的根目录所在。然而,出乎我的意料之外,这个“R_P”表示的“根目录”并不是我们通常理解的那样,而应该是整个论坛文件在服务器中的路径。

我用“$url=R_P.'****/****plantime.php”来表示修改节气图片查看提醒任务执行时间的文件路径,结果输出的却是“http://www.vtu425.com/www/wwwroot/vtu425.com/****/****plantime.php”!


要想修改文件,只能在我的笔记本电脑上,也就是下班到家后,要想在上班午休期间修改调试文件那是不可能的。于是我就想能不能把文件内容在后台显示出来,修改后还能再保存文件,这样就方便调试了。可是,就目前来说,这也只能是个想法而已,读取文件有相关的函数,整个文件内容也可以先保存中数据表里,可怎么覆盖文件就不了解了。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 24楼 发表于: 2025-01-10 23:18:07 星期五  点亮(0)
在PHP中,覆盖文件中的值可以通过以下几种方式实现:

1. 使用file_get_contents()和file_put_contents()函数:
– 使用file_get_contents()函数将文件内容读取到一个变量中。
– 在变量中修改需要覆盖的值。
– 使用file_put_contents()函数将修改后的内容写回到文件。

“`php
$file = “path/to/file.txt”;
$content = file_get_contents($file);

// 修改需要覆盖的值
$content = str_replace(“old_value”, “new_value”, $content);

file_put_contents($file, $content);
“`

2. 使用fopen()、fwrite()和fclose()函数:
– 使用fopen()函数打开文件并指定操作模式为 “w”,即写入模式。
– 使用fwrite()函数将修改后的内容写入文件。
– 使用fclose()函数关闭文件。

“`php
$file = “path/to/file.txt”;
$handle = fopen($file, “w”);

// 修改需要覆盖的值
$newContent = “new_value”;

fwrite($handle, $newContent);
fclose($handle);
“`

3. 使用file()函数和foreach循环:
– 使用file()函数将文件按行读取到一个数组中。
– 使用foreach循环遍历数组,修改需要覆盖的值。
– 使用implode()函数将修改后的数组合并为字符串。
– 使用file_put_contents()函数将修改后的内容写回到文件。

“`php
$file = “path/to/file.txt”;
$lines = file($file);

foreach ($lines as &$line) {
// 修改需要覆盖的值
$line = str_replace(“old_value”, “new_value”, $line);
}

$content = implode(“”, $lines);
file_put_contents($file, $content);
“`

无论使用哪种方式,确保在修改文件内容之前备份原始文件以避免数据丢失。同样,要注意文件权限以确保能够对文件进行写入操作。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 25楼 发表于: 2025-01-10 23:22:21 星期五  点亮(0)
在上一篇文章中我们介绍了一次性读取文件全部数据的方法,感兴趣的可以点击链接查阅《php文件操作之如何一次性获得文件的全部数据》。文件读取操作了解了不少,下面我们来了解一下文件写入操作。

正如标题上说的,今天的主题是介绍一下覆盖写入(将文件原有内容清空,然后重新添加数据)。下面我们会通过代码示例来给大家详细介绍的。

还是之前的例子,有一个名为“test.txt”的文本文件,里面的内容为:

1.png

想要将“test.txt”文件的内容改为:

立即学习“PHP免费学习笔记(深入)”;

我们来看看实现代码:

写入内容后,我们读取文件,看看是让进行覆盖写入

看看输出结果为:

2.png

重新打开“test.txt”文件,看看内容:

3.png

写入成功!我们来看看关键语句:

fopen($file, 'w')语句:fopen()函数可以按照指定文件模式$mode打开一个文件;当$mode为w或者w+时,会在打开文件的同时,清空文件的内容。

fwrite($handle, 'HELLO PHP!')语句:将字符串“HELLO PHP!”写入到打开的文件中。

除了利用fopen和fwrite()函数来覆盖写入外,我们还可以直接使用file_put_contents()函数来将文件原有内容清空重新添加数据。

看看下面的示例:

输出结果为:

4.png

重新打开“test.txt”文件,看看内容:

5.png

我们来了解一下file_put_contents()函数:

file_put_contents($filename,$data,$mode,$context)函数可以把一个字符串写入文件中,接受两个必需参数$filename(要打开的文件)和$data(要插入的内容,可以是字符串、一维数组或者资源等类型),2个可省略的参数$mode和$context(文件句柄的环境)。

其中,$mode参数用于如何打开/写入文件(即文件模式),有三个值:

FILE_USE_INCLUDE_PATH:默认值,用于覆盖原有数据。

FILE_APPEND:如果文件 $filename 已经存在,追加数据而不是覆盖。

LOCK_EX:在写入时获得一个独占锁。

重新打开“test.txt”文件,看看内容:

6.png

可以看出,我们在文件的末尾添加了一段新数据!因此file_put_contents()函数不仅可以用来覆盖写入,还可以追加写入。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 26楼 发表于: 2025-01-10 23:34:08 星期五  点亮(0)
PHP中一次性读取文件全部数据有多种方法,今天主要来了解两个函数fread()和readfile()。

我们有一个名为“test.txt”的文本文件,里面的内容为:
1.png

首先我们来了解fread()函数,看看下面的示例:

(#39转义字符是英文单引号)
输出结果:
2.png

可以看出,“test.txt”文件的内容全部输出了。

其实,fread($handle,$length)函数的作用是读取打开文件$handle中,指定$length字符长度的字符。但当$length参数的值被指定为 “filesize($file)”,那么就可以读取整个文件的全部数据了。filesize()函数的作用是获取文件大小,在 fread()函数中的作用就是读取整个文件。

使用fread()读取整个文件,还要先打开文件,计算整个文件的大小,读取完还要关闭文件,有复杂,有没有更简便的?答案是有,可以使用readfile()函数

我们看看下面的示例:
$file="1.txt";
readfile($file);

是不是很简单,直接使用一行代码“readfile($file);”就可以一次性获得文件的全部数据了;不需要打开或关闭文件,也不需要使用echo等输出语句就可输出文件内容。

下面我们来了解一下readfile()函数。

readfile($filename,$include_path,$context)函数会读取一个文件并将其写入到输出缓冲,同时返回从文件中读入的字节数。

该函数接受1个必需参数$filename(指定要读取的文件名或文件路径),2个可省略的参数$include_path和$context。

$include_path参数:设定是否想要在 include_path (在 php.ini 中)中搜索该文件,默认为 FALSE;如果想,则设置参数值为 '1'。

$context参数:设置文件句柄的环境

如果读取失败,readfile()函数会返回FALSE并附带错误信息;我们可以通过在函数名前面添加一个 '@' 来隐藏错误输出。
@是一个错误控制运算符,将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都将被忽略掉。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 27楼 发表于: 2025-01-10 23:39:19 星期五  点亮(0)
在PHP中,可以使用file_get_contents函数读取文件,str_replace函数进行字符串替换,再用file_put_contents函数将修改后的内容写回文件。如果文件不可写,需调整文件权限。
摘要由CSDN通过智能技术生成

要在 PHP 中修改文件中的内容,可以使用 `file_get_contents()` 函数读取文件中的内容,然后使用 `file_put_contents()` 函数将修改后的内容写回到文件中。以下是修改文件内容的示例代码:

在上面的代码中,我们首先定义要查找和替换的字符串以及文件路径,然后使用 `file_get_contents()` 函数读取文件内容,并使用 `str_replace()` 函数进行字符串替换。最后使用 `file_put_contents()` 函数将修改后的文件内容写回到文件中。

需要注意的是,如果该文件不可写,可能会导致无法修改文件内容。此时您可以使用chmod()函数更改文件的权限,或修改文件所属权以解决该问题。
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 28楼 发表于: 2025-01-12 22:51:17 星期日  点亮(0)
9号,22楼里的帖子说:
也许,有时间还会继续尝试修改,直到最后的成功或者最后的彻底决定放弃。
那两个任务都可以说是调试成功了,唯独这个(修改节气图片查看提醒任务执行时间的任务)一直没有成功,不管怎么修改就是不行。然而心里就是不甘心,不想就这么算了,不知道代码到底哪里有问题。所以,尝试还在一直继续。

file_get_contents()函数是PHP中一个非常方便的函数,可以用来读取文件内容,也可以用来打开链接。要打开链接,只需要将链接作为参数传递给该函数即可。
昨晚看到这个file_get_contents()函数能打开链接,很受鼓舞,继续尝试用它修改文件,并设置了任务执行时间。只是早起来后什么也没看到,但在后台看到这个任务执行了,这起码是好消息。早饭期间特意看了任务文件内容,原来是链接不完整,所以即使路径正确,打开文件和打开链接的结果应该是不太一样的。当然了,这只是我的猜测。说是打开链接,到底是打开链接里的文件,然后可以看到里面的内容,就像用记事本编辑文档一样;还是可以执行里面的代码,这区别可就太大了。
  1. <?php
  2. !function_exists('readover') && exit('Forbidden');
  3. include(R_P.'require/msg.php');
  4. $user=array('zhangjingyu','为你守候');//指定通知用户
  5. $url='5337music/33.php';
  6. $con = file_get_contents($url);
  7. $content="点击后面的链接,<a href='$url' target='blank' style='color:#ff00ff'>更新节气图片查看提醒任务执行时间</a><br>祝你生活愉快,天天都有好心情!";
  8. pwSendMsg(array('toUser'=>$user,'fromUser'=>'system','subject'=>'如果能看到这个标题,恭喜你!','content'=>$content));
  9. ?>

修改文件把链接补充完整后,看到“$content”重复,就把前面的改成了“$con”,设置执行时间为7点半。等到了车间用手机打开论坛,真的收到了测试通知!
系统通知  (2025-01-12 07:42)
如果能看到这个标题,恭喜你!

点击后面的链接,更新节气图片查看提醒任务执行时间
祝你生活愉快,天天都有好心情!
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!
在线zhangjingyu

只看该作者 29楼 发表于: 2025-01-13 22:16:53 星期一  点亮(0)
昨天下班后,把上面第7行的代码注释,然后把第6行的改成“$content”,也就是想看看访问33.php文件后能收到什么通知。然而任务执行了几次,什么也没有。最后在文件里面添加了“echo”输出,终于在通知里面看到了添加的内容。这么玩儿的?
尊重每位祺师,做有价值的祺文化社区!欢迎光临,并感谢您的支持与陪伴!
我希望能通过这个论坛让更多的朋友更多的关爱自己的家人和朋友,不要等到有一天失去后才知道没有好好的珍惜,才知道
拥有的珍贵!亲爱的们,如果你懂得,请把这份关爱传递,让更多的人加入到爱心接力当中,让每个人的心中都洋溢着爱的温馨!

我们应该知道:岁月如梭!其实生命,是很短暂,也是很脆弱的东西…… 设置自己的帖子签名请点这里!