// $limit = 31536000 (účet musí byť starší ako jeden rok)
function checkAzetUser ($mail, $limit = 31536000)
{
$reqCode = 0; // Preddefinovaná hodnota return
$nick = explode('@', $mail); // Vytiahnutie prezývky z mailovej adresy
$obsah = file_get_contents('http://pokec.azet.sk/' . $nick[0]); // Načítanie profilu užívateľa
// V načítanom obsahu vyhľadám title, v ktorom sa nachádza text registrovan
if (preg_match_all('/(title)=("registrovan[^"]*")/i', $obsah, $title))
{
preg_match_all('/(\d{1}|\d{2}).(\d{1}|\d{2}).(\d{4})/', str_replace(' ', '', $title[0][0]), $datum); // Z daného title vytiahnem dátum
$date = new DateTime($datum[0][0]); // Vytvorím objekt date so vstupom nájdeného dátumu
$vekUctu = time() - $date->format("U"); // Konvertnem výstup na UnixTime a odpočítam ho od aktuálneho unixTime, čím dostanem vek účtu v unix formáte
if ($vekUctu >= $limit) $reqCode = 2; // Účet je starší alebo sa rovná limitu (spĺňa požiadavku)
else $reqCode = 3; // Účet je mladší ako limit (nespĺňa požiadavku)
}
else $reqCode = 1; // Účet neexistuje (nespĺňa požiadavku)
return $reqCode;
}
Slúži to na overenie veku účtu na pokeci zo zadaného mailu.
Vedeli by ste sa mi na to pozrieť a poprípade napísať ako by sa to dalo krajšie vyriešiť?
keď to berieš z title, zbytočne ťahať celú stránku. Existuje funkcia get_meta_tags(). Tým ušetríš traffic, a aj si vyparsuješ title. Resp spraví to za teba. A ten $reqCode je ti zbytočný, rovno tam môžeš hádzať return. Kľudne aj v tej podmienke. To ti ukončí vykonávanie funkcie
//autoeditácia príspevku (07 Okt 2013, 15:21)
jo aha, ty to nebereš z title Tak nič, asi som prepracovaný
// $limit = 31536000 (účet musí byť starší ako jeden rok | jeden rok prevedený na unix formát)
function isAzetAccountYoung ($azetMail, $limit = 31536000)
{
// Vytiahnutie prezývky z mailovej adresy
$nick = explode('@', $azetMail);
// Načítanie profilu užívateľa
$obsah = file_get_contents('http://pokec.azet.sk/' . $nick[0]);
// V načítanom obsahu vyhľadám title, v ktorom sa nachádza text registrovan
if (preg_match_all('/(title)=("registrovan[^"]*")/i', $obsah, $title))
{
// Z daného title vytiahnem dátum
preg_match_all('/(\d{1}|\d{2}).(\d{1}|\d{2}).(\d{4})/', str_replace(' ', '', $title[0][0]), $datum);
// Vytvorím objekt date so vstupom nájdeného dátumu
$date = new DateTime($datum[0][0]);
// Konvertnem výstup na UnixTime a odpočítam ho od aktuálneho unixTime, čím dostanem vek účtu v unix formáte
$vekUctu = time() - $date->format("U");
// ? Účet je starší alebo sa rovná limitu (spĺňa požiadavku)
// : Účet je mladší ako limit (nespĺňa požiadavku)
return ($vekUctu >= $limit) ? 1 : 2;
}
// Účet neexistuje (nespĺňa požiadavku)
return 0;
}
Napadá ma ešte vycibriť tie reguláre (strčiť to do jedného), viete pomôcť? To čo tam vidíte je moje maximum ohľadne regex.