php 简单的手工制作哈希功能
此示例显示如何使用非常简化的算法创建单向加密方法<br/>。
<span style="color: #000000; font-weight: bold;">function</span> SimpleHash<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$n</span> = <span style="color: #cc66cc;">0</span>;
<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;">(</span><span style="color: #0000ff;">$c</span>=<span style="color: #cc66cc;">0</span>; <span style="color: #0000ff;">$c</span> < <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">)</span>; <span style="color: #0000ff;">$c</span>++<span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$c</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span>;
<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>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$n</span>;
<span style="color: #66cc66;">}</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;">(</span><span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span>!<a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">)</span>;
<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;">(</span><span style="color: #ff0000;">'TrimArray'</span>, <span style="color: #0000ff;">$Input</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">/*
Old version (v0.1):
function TrimArray($arr){
if (!is_array($arr)){ return $arr; }
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;">(</span><span style="color: #0000ff;">$Size</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$Unit</span> = <a href="http://www.php.net/strtolower"><span style="color: #000066;">strtolower</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Size</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #ff0000;">'/[^a-z]/'</span>, <span style="color: #ff0000;">''</span>, <span style="color: #0000ff;">$Unit</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$Value</span> = <a href="http://www.php.net/intval"><span style="color: #000066;">intval</span></a><span style="color: #66cc66;">(</span><a href="http://www.php.net/preg_replace"><span style="color: #000066;">preg_replace</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'/[^0-9]/'</span>, <span style="color: #ff0000;">''</span>, <span style="color: #0000ff;">$Size</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$Units</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'b'</span>=><span style="color: #cc66cc;">0</span>, <span style="color: #ff0000;">'kb'</span>=><span style="color: #cc66cc;">1</span>, <span style="color: #ff0000;">'mb'</span>=><span style="color: #cc66cc;">2</span>, <span style="color: #ff0000;">'gb'</span>=><span style="color: #cc66cc;">3</span>, <span style="color: #ff0000;">'tb'</span>=><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$Units</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$Unit</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span> ? <span style="color: #0000ff;">$Units</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$Unit</span><span style="color: #66cc66;">]</span> : <span style="color: #cc66cc;">0</span>;
<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">(</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;">(</span><span style="color: #cc66cc;">1024</span>, <span style="color: #0000ff;">$Exponent</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
php 删除重复的值
删除数组中的重复条目(仅限第一级)<br/>警告这将删除所有键
<span style="color: #000000; font-weight: bold;">function</span> remove_duplicated_values<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$arr</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span><a href="http://www.php.net/list"><span style="color: #000066;">list</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$key</span>,<span style="color: #0000ff;">$val</span><span style="color: #66cc66;">)</span> = <a href="http://www.php.net/each"><span style="color: #000066;">each</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$arr</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$_a</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$val</span><span style="color: #66cc66;">]</span> = <span style="color: #cc66cc;">1</span>;
<span style="color: #66cc66;">}</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;">(</span><span style="color: #0000ff;">$_a</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</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;">// --> 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>
<span style="color: #000000; font-weight: bold;">function</span> RandomizeArray<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// error check:</span>
<span style="color: #0000ff;">$array</span> = <span style="color: #66cc66;">(</span>!<a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span> ? <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">)</span> : <span style="color: #0000ff;">$array</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;">(</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">)</span> + <span style="color: #cc66cc;">10</span>;
<span style="color: #b1b100;">while</span><span style="color: #66cc66;">(</span><a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">)</span> > <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$array</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">$max</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// find a empty key:</span>
<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">(</span><a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">$max</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #0000ff;">$a</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">]</span> = <span style="color: #0000ff;">$e</span>;
<span style="color: #66cc66;">}</span>
<a href="http://www.php.net/ksort"><span style="color: #000066;">ksort</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$a</span>;
<span style="color: #66cc66;">}</span>
php 基于MD5的分组密码
下面是一个基于MD5的分组密码(类似MDC),它工作在128位CFB模式。<br/> <br/>在通过网络传输秘密数据之前对它进行加密是非常有用的。
<span style="color: #000000; font-weight: bold;">function</span> md5_encrypt<span style="color: #66cc66;">(</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;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$plain_text</span> .= <span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\x</span>13"</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;">(</span><span style="color: #0000ff;">$plain_text</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$n</span> % <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\0</span>"</span>, <span style="color: #cc66cc;">16</span> - <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$n</span> % <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$iv_len</span><span style="color: #66cc66;">)</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;">(</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;">)</span>;
<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$i</span> < <span style="color: #0000ff;">$n</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$plain_text</span>, <span style="color: #0000ff;">$i</span>, <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">)</span> ^ <a href="http://www.php.net/pack"><span style="color: #000066;">pack</span></a><span style="color: #66cc66;">(</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;">(</span><span style="color: #0000ff;">$iv</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</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;">(</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;">)</span> ^ <span style="color: #0000ff;">$password</span>;
<span style="color: #0000ff;">$i</span> += <span style="color: #cc66cc;">16</span>;
<span style="color: #66cc66;">}</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;">(</span><span style="color: #0000ff;">$enc_text</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #000000; font-weight: bold;">function</span> md5_decrypt<span style="color: #66cc66;">(</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;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$enc_text</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$enc_text</span><span style="color: #66cc66;">)</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;">(</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;">(</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;">)</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">512</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$i</span> < <span style="color: #0000ff;">$n</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$enc_text</span>, <span style="color: #0000ff;">$i</span>, <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">)</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;">(</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;">(</span><span style="color: #0000ff;">$iv</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</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;">(</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;">)</span> ^ <span style="color: #0000ff;">$password</span>;
<span style="color: #0000ff;">$i</span> += <span style="color: #cc66cc;">16</span>;
<span style="color: #66cc66;">}</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;">(</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;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #000000; font-weight: bold;">function</span> get_rnd_iv<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$iv_len</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$iv</span> = <span style="color: #ff0000;">''</span>;
<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$iv_len</span>-- > <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</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;">(</span><a href="http://www.php.net/mt_rand"><span style="color: #000066;">mt_rand</span></a><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span> & 0xff<span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$iv</span>;
<span style="color: #66cc66;">}</span>
php 简单语法突出显示
演示如何为PHP代码创建简单的语法高亮功能。<br/> <br/>警告:此函数非常简单,可能无法处理复杂或混淆的PHP代码;-)
<span style="color: #000000; font-weight: bold;">function</span> syntax_highlight<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$code</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// this matches --> "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;">(</span>
<span style="color: #ff0000;">'/"(.*?)"/U'</span>,
<span style="color: #ff0000;">'&quot;<span style="color: #007F00">$1</span>&quot;'</span>, <span style="color: #0000ff;">$code</span>
<span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// hightlight functions and other structures like --> function 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;">(</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<span style="color: #0000ff">$2</span>$3'</span>,
<span style="color: #0000ff;">$code</span>
<span style="color: #66cc66;">)</span>;
<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;">(</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;">'<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>'</span>,
<span style="color: #0000ff;">$code</span>
<span style="color: #66cc66;">)</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;">(</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;">'<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>'</span>,
<span style="color: #0000ff;">$code</span>
<span style="color: #66cc66;">)</span>;
<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;">(</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>>)/'</span>, <span style="color: #ff0000;">'<strong>$1</strong>'</span>, <span style="color: #0000ff;">$code</span><span style="color: #66cc66;">)</span>;
<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;">(</span>
<span style="color: #ff0000;">'/(<span style="color: #000099; font-weight: bold;">\$</span>[a-zA-Z0-9_]+)/'</span>, <span style="color: #ff0000;">'<span style="color: #0000B3">$1</span>'</span>, <span style="color: #0000ff;">$code</span>
<span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">/* The \b in the pattern indicates a word boundary, so only the distinct
** word "web" is matched, and not a word partial like "webbing" or "cobweb"
*/</span>
<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;">(</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;">'<span style="color: #7F007F">$1</span>'</span>, <span style="color: #0000ff;">$code</span>
<span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$code</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">/*example-start*/</span>
<span style="color: #808080; font-style: italic;">/*
** Create some example PHP code:
*/</span>
<span style="color: #0000ff;">$example_php_code</span> = <span style="color: #ff0000;">'
// some code comment:
$example = "foobar";
print $_SERVER["REMOTE_ADDR"];
$array = array(1, 2, 3, 4, 5);
function example_function($str) {
// reverse string
echo strrev($obj);
}
print example_function("foo");
/*
** A multiple line comment
*/
print "Something: " . $example;'</span>;
<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;">'<pre>'</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> syntax_highlight<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$example_php_code</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'</pre>'</span>;
<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;">(</span><span style="color: #0000ff;">$rgb</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #ff0000;">"%06X"</span>, <span style="color: #0000ff;">$rgb</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</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;">(</span><span style="color: #0000ff;">$Haystack</span>, <span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$Haystack</span>, <span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">)</span> === <a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Haystack</span><span style="color: #66cc66;">)</span>-<a href="http://www.php.net/strlen"><span style="color: #000066;">strlen</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<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;">(</span><span style="color: #0000ff;">$Haystack</span>, <span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</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;">(</span><span style="color: #0000ff;">$Needle</span><span style="color: #66cc66;">)</span>*<span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">)</span> == <span style="color: #0000ff;">$Needle</span>;
<span style="color: #66cc66;">}</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;">(</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;">"<span style="color: #000099; font-weight: bold;">\n</span>"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span>!<a href="http://www.php.net/file_exists"><span style="color: #000066;">file_exists</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Filepath</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$ErrorMsg</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<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;">(</span><span style="color: #0000ff;">$Filepath</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$Content</span> = RemoveDuplicatedLinesByString<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Content</span>, <span style="color: #0000ff;">$IgnoreCase</span>, <span style="color: #0000ff;">$NewLine</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// Is the file writeable?</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span>!<a href="http://www.php.net/is_writeable"><span style="color: #000066;">is_writeable</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Filepath</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</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;">(</span><span style="color: #0000ff;">$ErrorMsg</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<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;">(</span><span style="color: #0000ff;">$Filepath</span>, <span style="color: #ff0000;">'w+'</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/fwrite"><span style="color: #000066;">fwrite</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$FileResource</span>, <span style="color: #0000ff;">$Content</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/fclose"><span style="color: #000066;">fclose</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$FileResource</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<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;">(</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;">"<span style="color: #000099; font-weight: bold;">\n</span>"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><a href="http://www.php.net/is_array"><span style="color: #000066;">is_array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$NewLine</span>, <span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$Lines</span> = <a href="http://www.php.net/explode"><span style="color: #000066;">explode</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$NewLine</span>, <span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$LineArray</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$Duplicates</span> = <span style="color: #cc66cc;">0</span>;
<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;">(</span><span style="color: #0000ff;">$Line</span>=<span style="color: #cc66cc;">0</span>; <span style="color: #0000ff;">$Line</span> < <a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">)</span>; <span style="color: #0000ff;">$Line</span>++<span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<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;">(</span><span style="color: #0000ff;">$Lines</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$Line</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// Skip empty lines</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$CurrentLine</span> == <span style="color: #ff0000;">''</span><span style="color: #66cc66;">)</span>
<span style="color: #b1b100;">continue</span>;
<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>;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$IgnoreCase</span><span style="color: #66cc66;">)</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;">(</span><span style="color: #0000ff;">$LineKey</span><span style="color: #66cc66;">)</span>;
<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;">(</span>!<a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$LineKey</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>
<span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$LineKey</span><span style="color: #66cc66;">]</span> = <span style="color: #0000ff;">$CurrentLine</span>;
<span style="color: #b1b100;">else</span>
<span style="color: #0000ff;">$Duplicates</span>++;
<span style="color: #66cc66;">}</span>
<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;">(</span><span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">)</span>;
<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;">(</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;">(</span><span style="color: #0000ff;">$LineArray</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>