php 简单的手工制作哈希功能

此示例显示如何使用非常简化的算法创建单向加密方法<br/>。

<span style="color: #000000; font-weight: bold;">function</span> SimpleHash<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>    
&nbsp;
    <span style="color: #0000ff;">$n</span> = <span style="color: #cc66cc;">0</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// The magic happens here:</span>
    <span style="color: #808080; font-style: italic;">// I just loop trough all letters and add the</span>
    <span style="color: #808080; font-style: italic;">// ASCII value to a integer variable. </span>
    <span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$c</span>=<span style="color: #cc66cc;">0</span>; <span style="color: #0000ff;">$c</span> &lt; <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #0000ff;">$c</span>++<span style="color: #66cc66;">&#41;</span>
        <span style="color: #0000ff;">$n</span> += <a href="http://www.php.net/ord"><span style="color: #000066;">ord</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$c</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// After we went trough all letters</span>
    <span style="color: #808080; font-style: italic;">// we have a number that represents the</span>
    <span style="color: #808080; font-style: italic;">// content of the string</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$n</span>;
<span style="color: #66cc66;">&#125;</span>

php 修剪数组(递归)

递归清理整个数组。

<span style="color: #808080; font-style: italic;">/**
 * Trims a entire array recursivly.
 * 
 * @author      Jonas John
 * @version     0.2
 * @link        http://www.jonasjohn.de/snippets/php/trim-array.htm
 * @param       array      $Input      Input array
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> TrimArray<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #b1b100;">return</span> <a href="http://www.php.net/trim"><span style="color: #000066;">trim</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/array_map"><span style="color: #000066;">array_map</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'TrimArray'</span>, <span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">/* 
&nbsp;
Old version (v0.1): 
&nbsp;
function TrimArray($arr){
    if (!is_array($arr)){ return $arr; }
&nbsp;
    while (list($key, $value) = each($arr)){
        if (is_array($value)){
            $arr[$key] = TrimArray($value);
        }
        else {
            $arr[$key] = trim($value);
        }
    }
    return $arr;
}
*/</span>

php 一种检查文件大小的简便方法

将“5 MB”或“400 KB”之类的字符串转换为字节中的等效字符串。

<span style="color: #000000; font-weight: bold;">function</span> StringSizeToBytes<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Size</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #0000ff;">$Unit</span> = <a href="http://www.php.net/strtolower"><span style="color: #000066;">strtolower</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Size</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$Unit</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/[^a-z]/'</span>, <span style="color: #ff0000;">''</span>, <span style="color: #0000ff;">$Unit</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$Value</span> = <a href="http://www.php.net/intval"><span style="color: #000066;">intval</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/[^0-9]/'</span>, <span style="color: #ff0000;">''</span>, <span style="color: #0000ff;">$Size</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$Units</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'b'</span>=&gt;<span style="color: #cc66cc;">0</span>, <span style="color: #ff0000;">'kb'</span>=&gt;<span style="color: #cc66cc;">1</span>, <span style="color: #ff0000;">'mb'</span>=&gt;<span style="color: #cc66cc;">2</span>, <span style="color: #ff0000;">'gb'</span>=&gt;<span style="color: #cc66cc;">3</span>, <span style="color: #ff0000;">'tb'</span>=&gt;<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$Exponent</span> = <a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Units</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$Unit</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> ? <span style="color: #0000ff;">$Units</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$Unit</span><span style="color: #66cc66;">&#93;</span> : <span style="color: #cc66cc;">0</span>;
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Value</span> * <a href="http://www.php.net/pow"><span style="color: #000066;">pow</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1024</span>, <span style="color: #0000ff;">$Exponent</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;            
<span style="color: #66cc66;">&#125;</span>

php 删除重复的值

删除数组中的重复条目(仅限第一级)<br/>警告这将删除所有键

<span style="color: #000000; font-weight: bold;">function</span> remove_duplicated_values<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$arr</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #0000ff;">$_a</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #b1b100;">while</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/list"><span style="color: #000066;">list</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$key</span>,<span style="color: #0000ff;">$val</span><span style="color: #66cc66;">&#41;</span> = <a href="http://www.php.net/each"><span style="color: #000066;">each</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$arr</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$_a</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$val</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #cc66cc;">1</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/array_keys"><span style="color: #000066;">array_keys</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_a</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>

php 随机化数组

此函数只是随机化数组值。

<span style="color: #808080; font-style: italic;">// I noticed that there is already a built-in function that</span>
<span style="color: #808080; font-style: italic;">// does the same - so don't use mine ;-)</span>
<span style="color: #808080; font-style: italic;">//</span>
<span style="color: #808080; font-style: italic;">// --&gt; shuffle($Array);</span>
<span style="color: #808080; font-style: italic;">//</span>
<span style="color: #808080; font-style: italic;">// http://de2.php.net/manual/de/function.shuffle.php</span>
<span style="color: #808080; font-style: italic;">//</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> RandomizeArray<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// error check:</span>
    <span style="color: #0000ff;">$array</span> = <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ? <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0000ff;">$array</span>;
&nbsp;
    <span style="color: #0000ff;">$a</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$max</span> = <a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">10</span>;
&nbsp;
    <span style="color: #b1b100;">while</span><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span> &gt; <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>        
        <span style="color: #0000ff;">$e</span> = <a href="http://www.php.net/array_shift"><span style="color: #000066;">array_shift</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$r</span> = <a href="http://www.php.net/rand"><span style="color: #000066;">rand</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">$max</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        <span style="color: #808080; font-style: italic;">// find a empty key:</span>
        <span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
            <span style="color: #0000ff;">$r</span> = <a href="http://www.php.net/rand"><span style="color: #000066;">rand</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">$max</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>        
        <span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$e</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <a href="http://www.php.net/ksort"><span style="color: #000066;">ksort</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$a</span> = <a href="http://www.php.net/array_values"><span style="color: #000066;">array_values</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$a</span>;
<span style="color: #66cc66;">&#125;</span>

php 基于MD5的分组密码

下面是一个基于MD5的分组密码(类似MDC),它工作在128位CFB模式。<br/> <br/>在通过网络传输秘密数据之前对它进行加密是非常有用的。

<span style="color: #000000; font-weight: bold;">function</span> md5_encrypt<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$plain_text</span>, <span style="color: #0000ff;">$password</span>, <span style="color: #0000ff;">$iv_len</span> = <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #0000ff;">$plain_text</span> .= <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\x</span>13&quot;</span>;
    <span style="color: #0000ff;">$n</span> = <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$plain_text</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$n</span> % <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> <span style="color: #0000ff;">$plain_text</span> .= <a href="http://www.php.net/str_repeat"><span style="color: #000066;">str_repeat</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\0</span>&quot;</span>, <span style="color: #cc66cc;">16</span> - <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$n</span> % <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$i</span> = <span style="color: #cc66cc;">0</span>;
    <span style="color: #0000ff;">$enc_text</span> = get_rnd_iv<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$iv_len</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$iv</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$password</span> ^ <span style="color: #0000ff;">$enc_text</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$i</span> &lt; <span style="color: #0000ff;">$n</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$block</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$plain_text</span>, <span style="color: #0000ff;">$i</span>, <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span> ^ <a href="http://www.php.net/pack"><span style="color: #000066;">pack</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'H*'</span>, <a href="http://www.php.net/md5"><span style="color: #000066;">md5</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$iv</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$enc_text</span> .= <span style="color: #0000ff;">$block</span>;
        <span style="color: #0000ff;">$iv</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$block</span> . <span style="color: #0000ff;">$iv</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#41;</span> ^ <span style="color: #0000ff;">$password</span>;
        <span style="color: #0000ff;">$i</span> += <span style="color: #cc66cc;">16</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/base64_encode"><span style="color: #000066;">base64_encode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$enc_text</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> md5_decrypt<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$enc_text</span>, <span style="color: #0000ff;">$password</span>, <span style="color: #0000ff;">$iv_len</span> = <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #0000ff;">$enc_text</span> = <a href="http://www.php.net/base64_decode"><span style="color: #000066;">base64_decode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$enc_text</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$n</span> = <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$enc_text</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$i</span> = <span style="color: #0000ff;">$iv_len</span>;
    <span style="color: #0000ff;">$plain_text</span> = <span style="color: #ff0000;">''</span>;
    <span style="color: #0000ff;">$iv</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$password</span> ^ <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$enc_text</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">$iv_len</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$i</span> &lt; <span style="color: #0000ff;">$n</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$block</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$enc_text</span>, <span style="color: #0000ff;">$i</span>, <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$plain_text</span> .= <span style="color: #0000ff;">$block</span> ^ <a href="http://www.php.net/pack"><span style="color: #000066;">pack</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'H*'</span>, <a href="http://www.php.net/md5"><span style="color: #000066;">md5</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$iv</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0000ff;">$iv</span> = <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$block</span> . <span style="color: #0000ff;">$iv</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">512</span><span style="color: #66cc66;">&#41;</span> ^ <span style="color: #0000ff;">$password</span>;
        <span style="color: #0000ff;">$i</span> += <span style="color: #cc66cc;">16</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/<span style="color: #000099; font-weight: bold;">\\</span>x13<span style="color: #000099; font-weight: bold;">\\</span>x00*$/'</span>, <span style="color: #ff0000;">''</span>, <span style="color: #0000ff;">$plain_text</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> get_rnd_iv<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$iv_len</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #0000ff;">$iv</span> = <span style="color: #ff0000;">''</span>;
    <span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$iv_len</span>-- &gt; <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$iv</span> .= <a href="http://www.php.net/chr"><span style="color: #000066;">chr</span></a><span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/mt_rand"><span style="color: #000066;">mt_rand</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> &amp; 0xff<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$iv</span>;
<span style="color: #66cc66;">&#125;</span>

php 简单语法突出显示

演示如何为PHP代码创建简单的语法高亮功能。<br/> <br/>警告:此函数非常简单,可能无法处理复杂或混淆的PHP代码;-)

<span style="color: #000000; font-weight: bold;">function</span> syntax_highlight<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$code</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// this matches --&gt; &quot;foobar&quot; &lt;--</span>
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">'/&quot;(.*?)&quot;/U'</span>, 
        <span style="color: #ff0000;">'&amp;quot;&lt;span style=&quot;color: #007F00&quot;&gt;$1&lt;/span&gt;&amp;quot;'</span>, <span style="color: #0000ff;">$code</span>
    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// hightlight functions and other structures like --&gt; function foobar() &lt;--- </span>
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">'/(<span style="color: #000099; font-weight: bold;">\s</span>)<span style="color: #000099; font-weight: bold;">\b</span>(.*?)((<span style="color: #000099; font-weight: bold;">\b</span>|<span style="color: #000099; font-weight: bold;">\s</span>)<span style="color: #000099; font-weight: bold;">\(</span>)/U'</span>, 
        <span style="color: #ff0000;">'$1&lt;span style=&quot;color: #0000ff&quot;&gt;$2&lt;/span&gt;$3'</span>, 
        <span style="color: #0000ff;">$code</span>
    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Match comments (like /* */): </span>
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">'/(<span style="color: #000099; font-weight: bold;">\/</span><span style="color: #000099; font-weight: bold;">\/</span>)(.+)<span style="color: #000099; font-weight: bold;">\s</span>/'</span>, 
        <span style="color: #ff0000;">'&lt;span style=&quot;color: #660066; background-color: #FFFCB1;&quot;&gt;&lt;i&gt;$0&lt;/i&gt;&lt;/span&gt;'</span>, 
        <span style="color: #0000ff;">$code</span>
    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">'/(<span style="color: #000099; font-weight: bold;">\/</span><span style="color: #000099; font-weight: bold;">\*</span>.*?<span style="color: #000099; font-weight: bold;">\*</span><span style="color: #000099; font-weight: bold;">\/</span>)/s'</span>, 
        <span style="color: #ff0000;">'&lt;span style=&quot;color: #660066; background-color: #FFFCB1;&quot;&gt;&lt;i&gt;$0&lt;/i&gt;&lt;/span&gt;'</span>, 
        <span style="color: #0000ff;">$code</span>
    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// hightlight braces:</span>
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/(<span style="color: #000099; font-weight: bold;">\(</span>|<span style="color: #000099; font-weight: bold;">\[</span>|<span style="color: #000099; font-weight: bold;">\{</span>|<span style="color: #000099; font-weight: bold;">\}</span>|<span style="color: #000099; font-weight: bold;">\]</span>|<span style="color: #000099; font-weight: bold;">\)</span>|<span style="color: #000099; font-weight: bold;">\-</span>&gt;)/'</span>, <span style="color: #ff0000;">'&lt;strong&gt;$1&lt;/strong&gt;'</span>, <span style="color: #0000ff;">$code</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// hightlight variables $foobar</span>
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">'/(<span style="color: #000099; font-weight: bold;">\$</span>[a-zA-Z0-9_]+)/'</span>, <span style="color: #ff0000;">'&lt;span style=&quot;color: #0000B3&quot;&gt;$1&lt;/span&gt;'</span>, <span style="color: #0000ff;">$code</span>
    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">/* The \b in the pattern indicates a word boundary, so only the distinct
    ** word &quot;web&quot; is matched, and not a word partial like &quot;webbing&quot; or &quot;cobweb&quot; 
    */</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// special words and functions</span>
    <span style="color: #0000ff;">$code</span> = <a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">&#40;</span>
        <span style="color: #ff0000;">'/<span style="color: #000099; font-weight: bold;">\b</span>(print|echo|new|function)<span style="color: #000099; font-weight: bold;">\b</span>/'</span>, 
        <span style="color: #ff0000;">'&lt;span style=&quot;color: #7F007F&quot;&gt;$1&lt;/span&gt;'</span>, <span style="color: #0000ff;">$code</span>
    <span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$code</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">/*example-start*/</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*
** Create some example PHP code:
*/</span>
&nbsp;
<span style="color: #0000ff;">$example_php_code</span> = <span style="color: #ff0000;">'
// some code comment:
$example = &quot;foobar&quot;;
&nbsp;
print $_SERVER[&quot;REMOTE_ADDR&quot;];
&nbsp;
$array = array(1, 2, 3, 4, 5);
&nbsp;
function example_function($str) {
    // reverse string
    echo strrev($obj);
}
&nbsp;
print example_function(&quot;foo&quot;);
&nbsp;
/*
** A multiple line comment
*/
&nbsp;
print &quot;Something: &quot; . $example;'</span>;
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">// output the formatted code:</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&lt;pre&gt;'</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> syntax_highlight<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$example_php_code</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&lt;/pre&gt;'</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">/*example-end*/</span>

php RGB2Hex

如果您需要将RGB颜色转换为HEX颜色,请使用此颜色。

<span style="color: #000000; font-weight: bold;">function</span> rgb2hex<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$rgb</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
   <span style="color: #b1b100;">return</span> <a href="http://www.php.net/sprintf"><span style="color: #000066;">sprintf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;%06X&quot;</span>, <span style="color: #0000ff;">$rgb</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>

php 以。。结束

返回true或fales,具体取决于<br/>文本是否以给定字符串结尾。

<span style="color: #808080; font-style: italic;">/**
 * EndsWith
 * Tests whether a text ends with the given
 * string or not.
 *
 * @param     string
 * @param     string
 * @return    bool
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> EndsWith<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Haystack</span>, <span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #808080; font-style: italic;">// Recommended version, using strpos</span>
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/strrpos"><span style="color: #000066;">strrpos</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Haystack</span>, <span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">&#41;</span> === <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Haystack</span><span style="color: #66cc66;">&#41;</span>-<a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// Another way, using substr</span>
<span style="color: #000000; font-weight: bold;">function</span> EndsWith_Old<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Haystack</span>, <span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Haystack</span>, <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #0000ff;">$Needle</span>;
<span style="color: #66cc66;">&#125;</span>

php 删除重复的行

此函数删除文本文件的所有重复行。而已。

<span style="color: #808080; font-style: italic;">/**
 * RemoveDuplicatedLines
 * This function removes all duplicated lines of the given text file.
 *
 * @param     string
 * @param     bool
 * @return    string
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> RemoveDuplicatedLines<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Filepath</span>, <span style="color: #0000ff;">$IgnoreCase</span>=<span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #0000ff;">$NewLine</span>=<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/file_exists"><span style="color: #000066;">file_exists</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Filepath</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$ErrorMsg</span>  = <span style="color: #ff0000;">'RemoveDuplicatedLines error: '</span>;
        <span style="color: #0000ff;">$ErrorMsg</span> .= <span style="color: #ff0000;">'The given file '</span> . <span style="color: #0000ff;">$Filepath</span> . <span style="color: #ff0000;">' does not exist!'</span>;
        <a href="http://www.php.net/die"><span style="color: #000066;">die</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$ErrorMsg</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">$Content</span> = <a href="http://www.php.net/file_get_contents"><span style="color: #000066;">file_get_contents</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Filepath</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$Content</span> = RemoveDuplicatedLinesByString<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Content</span>, <span style="color: #0000ff;">$IgnoreCase</span>, <span style="color: #0000ff;">$NewLine</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Is the file writeable?</span>
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/is_writeable"><span style="color: #000066;">is_writeable</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Filepath</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$ErrorMsg</span>  = <span style="color: #ff0000;">'RemoveDuplicatedLines error: '</span>;
        <span style="color: #0000ff;">$ErrorMsg</span> .= <span style="color: #ff0000;">'The given file '</span> . <span style="color: #0000ff;">$Filepath</span> . <span style="color: #ff0000;">' is not writeable!'</span>;    
        <a href="http://www.php.net/die"><span style="color: #000066;">die</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$ErrorMsg</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// Write the new file</span>
    <span style="color: #0000ff;">$FileResource</span> = <a href="http://www.php.net/fopen"><span style="color: #000066;">fopen</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Filepath</span>, <span style="color: #ff0000;">'w+'</span><span style="color: #66cc66;">&#41;</span>;      
    <a href="http://www.php.net/fwrite"><span style="color: #000066;">fwrite</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$FileResource</span>, <span style="color: #0000ff;">$Content</span><span style="color: #66cc66;">&#41;</span>;        
    <a href="http://www.php.net/fclose"><span style="color: #000066;">fclose</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$FileResource</span><span style="color: #66cc66;">&#41;</span>;   
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">/**
 * RemoveDuplicatedLinesByString
 * This function removes all duplicated lines of the given string.
 *
 * @param     string
 * @param     bool
 * @return    string
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> RemoveDuplicatedLinesByString<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Lines</span>, <span style="color: #0000ff;">$IgnoreCase</span>=<span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #0000ff;">$NewLine</span>=<span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #0000ff;">$Lines</span> = <a href="http://www.php.net/implode"><span style="color: #000066;">implode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$NewLine</span>, <span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$Lines</span> = <a href="http://www.php.net/explode"><span style="color: #000066;">explode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$NewLine</span>, <span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$LineArray</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">$Duplicates</span> = <span style="color: #cc66cc;">0</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Go trough all lines of the given file</span>
    <span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Line</span>=<span style="color: #cc66cc;">0</span>; <span style="color: #0000ff;">$Line</span> &lt; <a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #0000ff;">$Line</span>++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;">// Trim whitespace for the current line</span>
        <span style="color: #0000ff;">$CurrentLine</span> = <a href="http://www.php.net/trim"><span style="color: #000066;">trim</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$Line</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        <span style="color: #808080; font-style: italic;">// Skip empty lines</span>
        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$CurrentLine</span> == <span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #b1b100;">continue</span>;
&nbsp;
        <span style="color: #808080; font-style: italic;">// Use the line contents as array key</span>
        <span style="color: #0000ff;">$LineKey</span> = <span style="color: #0000ff;">$CurrentLine</span>;
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$IgnoreCase</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #0000ff;">$LineKey</span> = <a href="http://www.php.net/strtolower"><span style="color: #000066;">strtolower</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$LineKey</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
        <span style="color: #808080; font-style: italic;">// Check if the array key already exists,</span>
        <span style="color: #808080; font-style: italic;">// if not add it otherwise increase the counter</span>
        <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>!<a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$LineKey</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$LineKey</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$CurrentLine</span>;        
        <span style="color: #b1b100;">else</span>                
            <span style="color: #0000ff;">$Duplicates</span>++;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// Sort the array</span>
    <a href="http://www.php.net/asort"><span style="color: #000066;">asort</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #808080; font-style: italic;">// Return how many lines got removed</span>
    <span style="color: #b1b100;">return</span> <a href="http://www.php.net/implode"><span style="color: #000066;">implode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$NewLine</span>, <a href="http://www.php.net/array_values"><span style="color: #000066;">array_values</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;    
<span style="color: #66cc66;">&#125;</span>