file_get_contents最后一条记录

时间:2016-12-19 15:52:12

标签: php file-get-contents

我正在尝试制作一个小型系统来帮助我完成工作。从这里读一些文章,测试和失败,我使这段代码工作:

error_reporting( error_reporting() & ~E_NOTICE );
header("Content-Type: text/html; charset=ISO-8859-1", true);
$opts = array( 'http'=>array( 'method'=>"GET",
          'header'=>"Accept-Language: pt-BR\r\n" .
           "Cookie: ASPSESSIONIDSCSSRCRA=MHFGEDNDPHHBJDHGCMJKPDKN;    ASPSESSIONIDQCSTTDRB=EKJNDDNDGGFMAHBFJABMJNAM".session_name()."=".session_id()."\r\n" ) );
$context = stream_context_create($opts);
session_write_close(); // unlock the file
$url = "http://www.comprasnet.gov.br/pregao/fornec/mensagens_acomp.asp?prgcod=622924";
$contents = file_get_contents($url, false, $context);
session_start(); // Lock the file

echo ($contents);

// Função para procura várias palavras em uma string
function procpalavras01 ($contents, $palavras, $resultado = 0) {
foreach ( $palavras as $key => $value ) {
$pos = stripos($contents, $value);
if ($pos !== false) {
$palavras_encontradas[] = $value; }
}
if (is_array($palavras_encontradas)) {
$palavras_encontradas = implode(",",$palavras_encontradas);
}
return $palavras_encontradas;
}

$palavras = array ("Ilma Chaves Pereira","19.026.964/0001-37","origina","correio","@");
$resultado = procpalavras01($contents, $palavras);

//Variáveis
$nome = ('ACLicita');
$mensagem = ('Pregoeiro chama no pregão');
$pregao = ('72016');
$uasg = ('160019');
$data_envio = date('d/m/Y');
$hora_envio = date('H:i:s');

// Compo E-mail
$arquivo = "
<style type='text/css'>
body {
margin:0px;
font-family:Verdane;
font-size:12px;
color: #666666;
}
a{
color: #666666;
text-decoration: none;
}
a:hover {
color: #FF0000;
text-decoration: none;
}
</style>
<html>
<table width='510' border='1' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
        <tr>
          <td>
<tr>
             <td width='500'>Nome:$nome</td>
            </tr>
            <tr>
              <td width='320'>Mensagem:$mensagem</td>
            </tr>
            <tr>
              <td width='320'>Pregão:$pregao</td>
            </tr>
            <tr>
              <td width='320'>Uasg:$uasg</td>
            </tr>
            <tr>
              <td width='320'>Palavra Encontrada:$resultado</td>
            </tr>
        </td>
      </tr>  
      <tr>
        <td>Este e-mail foi enviado em <b>$data_envio</b> às <b>$hora_envio</b></td>
      </tr>
    </table>
</html>
";
//enviar

// emails para quem será enviado o formulário
$emailenviar = "licitacoes.icp@gmail.com";
$destino = $emailenviar;
$assunto = "Atenção ao Pregão: " . $pregao . " Uasg: " . $uasg;

// É necessário indicar que o formato do e-mail é html
  $headers  = 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  $headers .= 'From: ACLicita';
//$headers .= "Bcc: $EmailPadrao\r\n";

if ($resultado === null) {
} else {
$enviaremail = mail($destino, $assunto, $arquivo, $headers);
}

它工作正常,但我希望这只检查链接上的最后一条消息(按日期和小时),如果已经发送,则不再发送。该网站有一个刷新系统,因此每次网站刷新时我的代码都会刷新,如果找到$ palavras中的单词,则发送另一封邮件。帮助我或给我指路,一些亮点如何纠正这一点。我不知道我是否清楚自己。

编辑1:尝试插入表格的代码:

if ($resultado === null) {
} else {
$enviaremail = mail($destino, $assunto, $arquivo, $headers);
$sql = "INSERT INTO Licita (date, assunto, arquivo, email)
VALUES ('$date', '$assunto', '$arquivo', '$emailenviar')";
}

1 个答案:

答案 0 :(得分:0)

哟需要在数据库中存储已发送消息的地方。请参阅下面的代码中的注释。

browser.params

实际上,为了跟踪您发送的是哪一个,您需要在发送电子邮件后存储每条记录。在发送电子邮件之前,您需要向DB查询数据库中是否存在新的(最后一个)。
数据库:每次发送邮件时,请将该邮件信息保存到本地存储(文件,数据库或任何建议的MySQl)。每次发送时,在发送之前检查当前记录是否已发送。
会话:如果您只是想查看最后一个,那么将该信息存储到您的会话中,不要让您的会话过期。这样您就可以记录通过电子邮件发送的最后一个。
编辑:

  1. 将数据插入数据库:Insert
  2. 从数据库中读取数据:Read