Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据日期/时间执行PHP操作?_Php_Email - Fatal编程技术网

如何根据日期/时间执行PHP操作?

如何根据日期/时间执行PHP操作?,php,email,Php,Email,我想让我的服务器向我发送电子邮件,其中包含基于我的web托管提供商服务器数据库中生日日历的生日提醒。我知道如何从PHP发送e-mail,但这只是在客户端点击按钮后的一个动作。这也是我能找到的唯一执行动作的方法 在没有用户交互的情况下,如何让服务器在特定的日期/时间向我发送电子邮件 编辑 我不认为我的问题是重复的。假定的重复链接指的是一个关于cron的问题,答案是关于语法的,但它没有解释cron是如何工作的,或者我如何使用它来解决我的问题。详细说明Apb给出的评论 使用内容(按钮的脚本部分)创建p

我想让我的服务器向我发送
电子邮件
,其中包含基于我的web托管提供商服务器数据库中生日日历的生日提醒。我知道如何从
PHP
发送
e-mail
,但这只是在客户端点击按钮后的一个动作。这也是我能找到的唯一执行动作的方法

在没有用户交互的情况下,如何让服务器在特定的日期/时间向我发送
电子邮件

编辑

我不认为我的问题是重复的。假定的重复链接指的是一个关于cron的问题,答案是关于语法的,但它没有解释cron是如何工作的,或者我如何使用它来解决我的问题。

详细说明Apb给出的评论

  • 使用内容(按钮的脚本部分)创建php文件
  • 如果您正在执行php脚本,请使用或

  • Santosh Achari就问题回答了另一个选项,以详细说明Apb给出的评论

  • 使用内容(按钮的脚本部分)创建php文件
  • 如果您正在执行php脚本,请使用或

  • Santosh Achari回答了另一个问题

    您可以编写一个php脚本在命令行上执行。要从命令行运行php脚本,只需使用
    php
    命令:

    php myscript.php
    
    在本例中,如果
    myscript.php
    具有发送电子邮件的所有逻辑,那么您只需设置一个cron作业,以便每天或每小时(无论您希望它执行的频率如何)自动执行该文件。然后,您所需要做的就是在PHP脚本中编写逻辑,以检查是否是发送这些电子邮件的“时间”


    为php脚本设置cron作业的方法。

    您可以编写一个php脚本,以便在命令行上执行。要从命令行运行php脚本,只需使用
    php
    命令:

    php myscript.php
    
    在本例中,如果
    myscript.php
    具有发送电子邮件的所有逻辑,那么您只需设置一个cron作业,以便每天或每小时(无论您希望它执行的频率如何)自动执行该文件。然后,您所需要做的就是在PHP脚本中编写逻辑,以检查是否是发送这些电子邮件的“时间”


    为php脚本设置cron作业的方法。

    正如其他所说的cron作业是实现这一点的好方法

    例如(非常初级)script.php

    include '../connect.php';   
    $birthday_list =[];
    $today = date("m.d.y"); 
    
    
    try {           
        $sql = "SELECT `Birthday`, `Name`, `Surname`,  FROM `Friends` WHERE Friends.Birthday = '$today'";               
        foreach ($conn->query($sql) as $row) {          
            $temp = [$row['Birthday'],$row['Name'],$row['Surname']];
            $birthday_list[] =  $temp;                  
                        }    
                }
        catch(PDOException $e)
            {
            echo "Connection failed: " . $e->getMessage();
        }
    
    foreach ($birthday_list as $el){
        $name = $el[1];
        $surname = $el[2];
        $message = 'Todays is'.$name.' '.$surname.' birthday'; 
        mail('me@example.com', 'My Subject', $message);
    }
    

    然后您可以将此脚本作为cronjob运行,一些主机(例如godaddy)允许您从cpanel设置cron,否则您必须从服务器外壳设置cron。

    因为其他所述cronjob是实现这一点的好方法

    例如(非常初级)script.php

    include '../connect.php';   
    $birthday_list =[];
    $today = date("m.d.y"); 
    
    
    try {           
        $sql = "SELECT `Birthday`, `Name`, `Surname`,  FROM `Friends` WHERE Friends.Birthday = '$today'";               
        foreach ($conn->query($sql) as $row) {          
            $temp = [$row['Birthday'],$row['Name'],$row['Surname']];
            $birthday_list[] =  $temp;                  
                        }    
                }
        catch(PDOException $e)
            {
            echo "Connection failed: " . $e->getMessage();
        }
    
    foreach ($birthday_list as $el){
        $name = $el[1];
        $surname = $el[2];
        $message = 'Todays is'.$name.' '.$surname.' birthday'; 
        mail('me@example.com', 'My Subject', $message);
    }
    

    然后,您可以将此脚本作为cronjob运行,一些主机(例如godaddy)允许您从cpanel设置cron,否则您必须从服务器外壳设置cron。

    您可以将cron job设置为发送电子邮件可能重复的Yes Joris。服务器中有一个选项可以为任何时间间隔设置cron job文件。你应该去做。没错,你需要为此设置Cron作业。您可以将此表单设置为您的服务器cpanel。在这里,您将获得一个标签式的Cron作业,您将在那里获得所有相关信息。查看他的编辑,它不是的副本,但您可以从中设置Cron作业以发送电子邮件可能是Joris的副本。服务器中有一个选项可设置任意间隔的Cron作业文件。你应该去做。没错,你需要为此设置Cron作业。您可以将此表单设置为您的服务器cpanel。在那里你会得到一个标签式的Cron作业,你会在那里得到所有相关的信息。看看他的编辑,这不是重复的,但我把它放在哪里?我所拥有的只是我的Web主机上的网页目录。请查看您的Web主机帮助,其中一个必须提供cron选项我应该将其放在哪里?我只有一个在我的Web主机上的网页目录。请查看您的Web主机帮助,其中必须提供cron选项