Outils pour utilisateurs

Outils du site


tips_informatiques:programmation:php:code

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tips_informatiques:programmation:php:code [2009/07/02 15:08]
nico créée
tips_informatiques:programmation:php:code [2009/08/12 00:00] (Version actuelle)
Ligne 1: Ligne 1:
-====== ​function ​startWith ======+====== startWith ======
 <code php> <code php>
     /**     /**
Ligne 13: Ligne 13:
     }     }
 </​code>​ </​code>​
 +
 +====== endWith ======
 +<code php>
 +    /**
 +     * Tests if a string ends with the given string
 +     *
 +     * @param ​    ​string
 +     * @param ​    ​string
 +     * @return ​   bool
 +     */
 +    function endWith($string,​ $end)
 +    {
 +        return strrpos($string,​ $end) === strlen($string) - strlen($end);​
 +    }
 +</​code>​
 +
 +====== debug ======
 +<code php>
 +class DebugTool
 +{
 +    public static function show($object,​ $title = null, $backtrace_index = 0)
 +    {
 +        echo '<​div class="​debug">';​
 +      ​
 +        $calledFrom = debug_backtrace();​
 +        echo '<​strong>'​ . $calledFrom[$backtrace_index]['​file'​] . '</​strong>';​
 +        echo ' (line <​strong>'​ . $calledFrom[$backtrace_index]['​line'​] . '</​strong>​)';​
 +     
 +        if(isset($title))
 +        {
 +            echo '<​h3>'​ . $title . '</​h3>';​
 +        }
 +        ​
 +        echo('<​pre>'​);​
 +        if(is_array($object))
 +        {
 +            print_r($object);​
 +        }
 +        elseif(is_a($object,​ '​DOMDocument'​))
 +        {
 +            $object->​formatOutput = true;
 +            $xml_string = $object->​saveXML();​
 +            echo htmlentities($xml_string);​
 +        }
 +        elseif(is_a($object,​ '​DOMNodeList'​) || is_a($object,​ '​DOMElement'​))
 +        {
 +            $dom = new DOMDocument();​
 +            $debugElement = $dom->​createElement('​debug'​);​
 +            $dom->​appendChild($debugElement);​
 +            ​
 +            if(is_a($object,​ '​DOMNodeList'​))
 +            {
 +                foreach ($object as $node) ​
 +                {
 +                $node = $dom->​importNode($node,​ true);
 +                $debugElement->​appendChild($node);​
 +                }
 +            }
 +            elseif(is_a($object,​ '​DOMElement'​))
 +            {
 +                $node = $dom->​importNode($object,​ true);
 +                $debugElement->​appendChild($node);​
 +            }
 +            ​
 +            $dom->​formatOutput = true;
 +            $xml_string = $dom->​saveXML();​
 +            echo htmlentities($xml_string);​
 +        }
 +        elseif(is_object($object))
 +        {
 +            echo get_class($object);​
 +        }
 +        else 
 +        {
 +            echo $object;
 +        }
 +        ​
 +        echo('</​pre>'​);​
 +        echo '</​div>';​
 +    }
 +
 +
 +/​*******************************************************************/​
 +/***** GLOBAL FUNCTIONS ********************************************/​
 +/​*******************************************************************/​
 +
 +function debug($object,​ $title = null)
 +{
 +    DebugTool :: show($object,​ $title, 1);
 +}
 +</​code>​
 +
 +====== to_db_date ======
 +<code php>
 +/**
 +* Converts a UNIX timestamp (as returned by time()) to a datetime string
 +* for use in SQL queries.
 +* @param int $date The date as a UNIX timestamp.
 +* @return string The date in datetime format.
 +*/
 +static function to_db_date($date)
 +{
 +    if (isset($date))
 +    {
 +        return date('​Y-m-d H:​i:​s',​ $date);
 +    }
 +    else
 +    {
 +        return null;
 +    }
 +}
 +</​code>​
 +
 +====== from_db_date ======
 +<code php>
 +/**
 +* Converts a datetime value (as retrieved from the database) to a UNIX
 +* timestamp (as returned by time()).
 +* @param string $date The date as a UNIX timestamp.
 +* @return int The date as a UNIX timestamp.
 +*/
 +static function from_db_date($date)
 +{
 +    if (isset ($date))
 +    {
 +        return strtotime($date);​
 +    }
 +    else
 +    {
 +        return null;
 +    }
 +}
 +</​code>​
 +
 +
 +====== get_value_between_chars ======
 +<code php>
 +/**
 + * Return the string found between two characters. If an index is given, it returns the
 + * value at the index position
 + ​* ​
 + * @param string $opening_char
 + * @param string $closing_char
 + * @param int $index 0 based index
 + * @return string or null
 + */
 +function get_value_between_chars($haystack,​ $index = 0, $opening_char = '​[',​ $closing_char = '​]'​)
 +{
 +    $offset = 0;
 +    $found = true;
 +    $value = null;
 +    ​
 +    for ($i = 0; $i < $index + 1; $i++)
 +    {
 +        $op_pos = strpos($haystack,​ $opening_char,​ $offset);
 +        if($op_pos !== false)
 +        {
 +            $cl_pos = strpos($haystack,​ $closing_char,​ $op_pos + 1);
 +
 +            if($cl_pos !== false)
 +            {
 +                $value = substr($haystack,​ $op_pos + 1, $cl_pos - $op_pos - 1);
 +                $offset = $cl_pos + 1;
 +            }
 +            else
 +            {
 +                $found = false;
 +                break;
 +            }
 +        }
 +        else
 +        {
 +            $found = false;
 +            break;
 +        }
 +    }
 +    ​
 +    if($found)
 +    {
 +        return $value;
 +    }
 +    else
 +    {
 +        return null;
 +    }
 +}
 +</​code>​
 +
 +
 +
 +
 +
 +
 +====== to_multilevel_array ======
 +
 +<code php>
 +/**
 + * Build an array from a list of strings
 + ​* ​
 + * E.g: Array with the following strings:
 + ​* ​
 + * '​general_description[0][0][string]'​
 + * '​general_description[0][1][string]'​
 + * '​general_description[1][0][string]'​
 + ​* ​
 + * @param array $strings Array of (strings => value) pairs to merge into a multilevel array
 + * @param string $opening_char
 + * @param string $closing_char
 + */
 +public static function to_multilevel_array($strings,​ $opening_char = '​[',​ $closing_char = '​]'​)
 +{
 +    $array = array();
 +    ​
 +    foreach ($strings as $string => $value) ​
 +    {
 +        self :: set_next_level_array($array,​ $string, $value, $opening_char,​ $closing_char); ​  
 +    }
 +    ​
 +    return $array;
 +}
 +
 +private static function set_next_level_array(&​$container_array,​ $string, $value, $opening_char = '​[',​ $closing_char = '​]'​) ​   ​
 +{
 +    $key = self :: get_value_between_chars($string,​ 0, $opening_char,​ $closing_char);​
 +    $sub_string = substr($string,​ strpos($string,​ $closing_char) + 1);
 +    ​
 +    if(isset($sub_string) && strlen($sub_string) > 0)
 +    {
 +        if(isset($container_array[$key]))
 +        {
 +            $sub_array = $container_array[$key];​
 +        }
 +        else
 +        {
 +            $sub_array = array();
 +        }
 +        ​
 +        self :: set_next_level_array($sub_array,​ $sub_string,​ $value, $opening_char,​ $closing_char);​
 +    ​
 +        $container_array[$key] = $sub_array;
 +    }
 +    else
 +    {
 +        if(isset($container_array[$key]))
 +        {
 +            $container_array[$key] = array_merge($container_array[$key],​ $value);
 +        }
 +        else
 +        {
 +            $container_array[$key] = $value;
 +        }
 +    }
 +}
 +</​code>​
 +
 +
 +
 +
 +
 +
 +
 +
tips_informatiques/programmation/php/code.1246540135.txt.gz · Dernière modification: 2009/07/02 00:00 (modification externe)