Archive

Archive for the ‘Functions’ Category

PhpUtils

8 September 2012 Leave a comment

Hello word! Hi unify a lot of functions used every day by me and others developers
in a static class ready to use into your projects.

Why a static class?
Simply ’cause with it if you already have a function with the same name your script
will not crash ūüôā

Download it here

You can find complete documentation here:

http://www.dbpersister.com/phputils-documentation/class-PhpUtils.html

Please post your comments and request on the main site

www.dbpersister.com

and not here.

Thanks to all contributors

Advertisements

Verify EAN 13 with PHP

23 March 2012 4 comments

Here the function to verify a correct EAN13 structure.

function validate_EAN13Barcode($barcode)
{
    // check to see if barcode is 13 digits long
    if (!preg_match("/^[0-9]{13}$/", $barcode)) {
        return false;
    }

    $digits = $barcode;

    // 1. Add the values of the digits in the 
    // even-numbered positions: 2, 4, 6, etc.
    $even_sum = $digits[1] + $digits[3] + $digits[5] +
                $digits[7] + $digits[9] + $digits[11];

    // 2. Multiply this result by 3.
    $even_sum_three = $even_sum * 3;

    // 3. Add the values of the digits in the 
    // odd-numbered positions: 1, 3, 5, etc.
    $odd_sum = $digits[0] + $digits[2] + $digits[4] +
               $digits[6] + $digits[8] + $digits[10];

    // 4. Sum the results of steps 2 and 3.
    $total_sum = $even_sum_three + $odd_sum;

    // 5. The check character is the smallest number which,
    // when added to the result in step 4, produces a multiple of 10.
    $next_ten = (ceil($total_sum / 10)) * 10;
    $check_digit = $next_ten - $total_sum;

    // if the check digit and the last digit of the 
    // barcode are OK return true;
    if ($check_digit == $digits[12]) {
        return true;
    }

    return false;
}
Categories: Functions, PHP

Verify if a table is locked by MySql


Many times you need to understand if a table still locked by mysql.
In this case you can use the following function to understand if it is or not.


/**
* This function will check on the db name pass by the first param
* if one, or more tables, are locked by others processes
*
* Return true if just one of tables is locked
*
* @param string $db_name
* @param array $array_tables_names
* @return boolean
*/
function tablesLocked($db_name, $array_tables_names)
{

//Take the instance of codeigniter
$ci = get_instance();

//Load the default configuration 
//(if your configuration name is different just change it)
$ci->load->database("default",true);

//Check for locked tables
$sql = "SHOW OPEN TABLES FROM `".$db_name."`
WHERE In_use > 0
AND
`Table` IN (";

$tables = count($array_tables_names);
for($i = 0; $i < $tables; $i++):
$sql .= "'".$array_tables_names[$i]."'";
if($i < ($tables-1)) $sql .= ",";
endfor;

$sql .= ")";
$rs = $ci->db->query($sql);
return $rs->num_rows() > 0;
}

Categories: CodeIgniter, Functions, PHP

watermark image with php and ImageMagick


Here a simple function that use ImageMagick command to apply a watermark image as background of another one.

/**
* Direct command from imagemagick
* composite -dissolve 15 -tile watermark.png source.jpg destination.jpg
*
* @param string $watermarkfile
* @param string $sourcefile
* @param string $destfile
* @param int $dissolve
* @return boolean
*/
function watermarkImage($watermarkfile, $sourcefile, $destfile, $dissolve = 5)
{
$cmd = "/usr/bin/composite -dissolve $dissolve -tile $watermarkfile $sourcefile $destfile";

exec($cmd, $output, $return);
return $return === 0;
}

Categories: Bash scripting, Functions, PHP

Parsing del sorgente HTML in php


Una delle richieste pi√Ļ frequenti ma al tempo stesso pi√Ļ complicate da effettuare (bene intendo) √®
l’analisi del codice sorgente di una pagina html soprattutto se fatta da terzi.
A questo scopo con i metodi abbinati a questo post potrete avere un oggetto che rispecchia la pagina
trasformando ogni elemento in un oggetto DOM in modo da poter essere interrogato con le farie funzioni
già note a php con le elaborazioni dei tags XML.

 

html_parser_functions.pdf

Ecco un esempio di utilizzo con codice e dati inventati e non veritieri
al solo scopo didattico:

//Apro il link di una pagina valida
$dom = file_get_dom($link_ad_indirizzo_valido);

//Prendo, per esempio, un tag div di cui mi interessa prelevarne il contenuto
$divDescrizione = $dom->find("div[id=id_del_div]");

//Inizializzo la variabile che conterrà la descrizione
$descr = ""; //"Descrizione non trovata :(";

//Se il div non è stato trovato per qualche problema la descrizione
//sarà anch'ella vuota
if(!empty($divDescrizione)) {
   //Prelevo la descrizione dal primo div che mi restituisce il metodo
   $descr = $divDescrizione[0]->innertext();

   //Eventualmente posso trasformare il tutto in utf8 qualora ce ne fosse la necessità
   $descr = utf8_encode($descr);
}

//A questo punto posso stampare, restituire o fare quello che pi√Ļ mi aggrada con la mia variabile
 echo $descr;

Come avrete potuto notare in questo modo il parsing e la ricerca di oggetti all’interno di un codice HTML ben formattato e soprattutto
corretto, non √® pi√Ļ una cosa cos√¨ complessa come farlo manualmente.

Attendo i Vs. commenti

Categories: Functions, PHP, XHTML e HTML

Conversione data in formato MySql


Formatta una data nel formato di MySql partendo da una stringa
Il formato della data deve essere una delle seguenti con opzionale l’ora:
dd/mm/yyyy hh:mm:ss
dd/mm/yy hh:mm:ss
d/mm/yy hh:mm:ss

 

 

function getMySqlFormattedDateString($data, $separatoreInput = "/", $separatoreOutput = "-") {
    //Verifica che la data non sia già in formato mysql
    //e quindi con le prime 4 cifre come anno tra il 2000 ed il 2100

    if(strpos($data, $separatoreInput) === false) {
        return null;
    }

    $tmp = substr($data, 0, 4);
    if($tmp >= 2000 && $tmp <= 2100) {
        return $data;
    }

    //Prima si verifica che siano presenti almeno gli slashes
    $pos_slashes = strpos($data, $separatoreInput);
    if($pos_slashes === false) {
        return "";
    }



    //Divisione della data dall'ora
    $arrDataOra = explode(" ", $data);

    //Determinazione del giorno, mese, anno
    $arrData = explode($separatoreInput, $arrDataOra[0]);

    //Se non ci sono 3 valori almeno si restituisce ""
    if(count($arrData) != 3) {
        return "";
    }

    $giorno = str_pad($arrData[0], 2, "0", STR_PAD_LEFT);
    if(preg_match("/[\D]/",$giorno)) return "";
    $mese = str_pad($arrData[1], 2, "0", STR_PAD_LEFT);
    if(preg_match("/[\D]/",$mese)) return "";
    $anno = str_pad($arrData[2], 2, "0", STR_PAD_LEFT);
    if(preg_match("/[\D]/",$anno)) return "";

    //Restituisco l'ora se presente
    if(!is_array($arrDataOra)) {
        return $anno.$separatoreOutput.$mese.$separatoreOutput.$giorno." ".$arrDataOra[1];
    }
    else {
        return $anno.$separatoreOutput.$mese.$separatoreOutput.$giorno;
    }

}
Categories: Functions, MySQL, PHP

Ottenere il nome del dominio da un indirizzo



function getDomain($url)
{
    if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === FALSE)
    {
        return false;
    }
    /*** get the url parts ***/
    $parts = parse_url($url);
    /*** return the host domain ***/
    return $parts['scheme'].'://'.$parts['host'];
}

Categories: Functions, PHP
%d bloggers like this: