等待变量在php邮件函数上执行条件
我面临的情况是,我有一个php页面,它将一些变量结果发送到一个电子邮件地址,这非常好,但现在在发送电子邮件之前,我需要等待一个变量,然后执行电子邮件。变量组可以称为D组和2个变量Z组 如何在第一个变量等待时使该变量到达同一php页面 B只有当变量未到达时,它必须等待2小时。它必须发送电子邮件,此外,如果用户在2小时之前将D组重新编写并将小时数设置为0,然后再次等待Z组,则它必须等待2小时等待变量在php邮件函数上执行条件,php,email,Php,Email,我面临的情况是,我有一个php页面,它将一些变量结果发送到一个电子邮件地址,这非常好,但现在在发送电子邮件之前,我需要等待一个变量,然后执行电子邮件。变量组可以称为D组和2个变量Z组 如何在第一个变量等待时使该变量到达同一php页面 B只有当变量未到达时,它必须等待2小时。它必须发送电子邮件,此外,如果用户在2小时之前将D组重新编写并将小时数设置为0,然后再次等待Z组,则它必须等待2小时 <?php $datetime1 = new DateTime('2017-06-27 08:00:
<?php
$datetime1 = new DateTime('2017-06-27 08:00:00');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
//echo $interval->format('%h');
if ($interval->format('%h') > 2 ) {
echo "yes more than 2 hours";
} else {
echo "not more than 2 hours";
// 12 hours are up
// give your error message
}
?>
在时间间隔上考虑得到2小时的差异,然后创建另一个if条件,比较是否存在其他变量,这就是我提出的
<?php
$groupD = $_GET["info"];
$datetime1 = new DateTime('2017-06-27 08:00:00');
sleep(1800); // sleep for 30 mins awaiting
$groupz = $_GET["infoxx"];
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
//echo $interval->format('%h');
if ($interval->format('%h') > 2 ) {
if (!is_null($groupD) & !is_null($groupz)){
echo "execute mail";
}
else {
echo "wont execute";
}
} else {
echo "not more than 2 hours";
// 12 hours are up
// give your error message
}
我面临的问题是如何让D组等待,直到Z组到达同一个php页面,我将睡眠设置为30分钟,因为2小时是最大的等待时间,无论如何,这是一个测试
这是我的邮件脚本//(我收到的变量来自通过数组中的ajax的一些js脚本)
>php
$mail=$_GET[“info”];
//睡眠(60);
foreach($gtm形式的邮件){
$message.=$gtm;
}
$header=“From:否-reply@test.com" . “\r\n”;
$para='1web2@test.com';
$header.=“MIME版本:1.0\r\n”;
$header.=“内容类型:text/html;字符集=ISO-8859-1\r\n”;
$titulo=‘邮件列表通讯’;
$message='';
$message.='El siguiente usuario about El la compra de un paquete en booking hello
;
$message.='';
$message.=“名称:”$邮件[0]。“”;
$message.=“Precio Total del paquete:”$邮件[1]。“”;
$message.=“名称:”$邮件[2]。“”;
$message.=“Apellido:”$邮件[3];
$message.=“”;
$message.=“”;
if(邮件($para,$titulo,$message,$header)){
模具();
}否则{
//呼应“假”;
}
/*}其他{
呼应“假”;
}
*/
}
?>
非常直截了当的方法是首先需要到达特定页面的文件应该写入某个tmp文件--到达.txt
需要等待的文件是轮询(即每5秒,最多两小时),以查看文件arrized.txt
是否为空,而不管其中的内容如何
- 如果不为空,则:清空文件并执行操作X
- 如果为空,则:
执行操作Y
编辑
以下是如何写入文件:
$file = 'temp.txt';
file_put_contents($file, "Arrived");
下面是如何检查文件是否为空:
if(filesize($filename) > 0) {
//file not empty...
//DO ACTION X
} else {
//file is empty...
//DO ACTION Y
}
下面是如何每5秒进行一次投票
for ($i=0; $i <= 120; $i++) {
if(filesize($filename) > 0) {
//file not empty...
//DO ACTION X
} else {
//file is empty...
//DO ACTION Y
}
sleep(5); //wait 5 seconds
}
($i=0;$i 0)的{
//文件不是空的。。。
//做动作X
}否则{
//文件是空的。。。
//做动作
}
睡眠(5)//等5秒钟
}
我不太熟悉如何在txt上执行此操作file@walteralexander,添加了代码位让您继续。我将编辑问题,以便您可以查看我的php邮件脚本,并帮助我将代码粘贴到何处页面在php执行时已加载get值,因为这些值位于URL中,如果您更改它们,它应该从一开始就执行代码。。。
for ($i=0; $i <= 120; $i++) {
if(filesize($filename) > 0) {
//file not empty...
//DO ACTION X
} else {
//file is empty...
//DO ACTION Y
}
sleep(5); //wait 5 seconds
}