php 带有注销功能的HTTP身份验证示例
由于用户请求,我使用注销功能扩展了我的旧HTTP身份验证<br/>代码段。 <br/> <br/> <br/> $ <br/>这也可以通过<a href =“http://de3.php.net/manual/en/ref.session来实现。 php“title =”PHP Sessions“>会话</a>,搜索相关的<br/> <br/> <a href =”http://www.php.net/manual/en/features.http-auth .php“> php.net页面</a> <br/>可以找到更多相关的片段和评论。 <br/> <br/> <br/> <br/> <br/> <b>更新:对不起,这只适用于Firefox。</ b> <br/> <br/>在Internet Explorer中默认情况下,<br/>禁用该技术。<br/>(您可以查看相关链接以获得更多帮助。)
<span style="color: #808080; font-style: italic;">// The full url to this file is required for </span>
<span style="color: #808080; font-style: italic;">// the Logout function</span>
<span style="color: #0000ff;">$CurrentUrl</span> = <span style="color: #ff0000;">'www.jonasjohn.de/test_login.php'</span>;
<span style="color: #808080; font-style: italic;">// Status flags:</span>
<span style="color: #0000ff;">$LoginSuccessful</span> = <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #0000ff;">$Logout</span> = <span style="color: #000000; font-weight: bold;">false</span>;
<span style="color: #808080; font-style: italic;">// Check username and password:</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;">$_SERVER</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'PHP_AUTH_USER'</span><span style="color: #66cc66;">]</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;">$_SERVER</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'PHP_AUTH_PW'</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;">$usr</span> = <span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'PHP_AUTH_USER'</span><span style="color: #66cc66;">]</span>;
<span style="color: #0000ff;">$pwd</span> = <span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'PHP_AUTH_PW'</span><span style="color: #66cc66;">]</span>;
<span style="color: #808080; font-style: italic;">// Does the user want to login or logout?</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$usr</span> == <span style="color: #ff0000;">'jonas'</span> && <span style="color: #0000ff;">$pwd</span> == <span style="color: #ff0000;">'foobar'</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$LoginSuccessful</span> = <span style="color: #000000; font-weight: bold;">true</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$usr</span> == <span style="color: #ff0000;">'reset'</span> && <span style="color: #0000ff;">$pwd</span> == <span style="color: #ff0000;">'reset'</span> && <a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'Logout'</span><span style="color: #66cc66;">]</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// reset is a special login for logout ;-)</span>
<span style="color: #0000ff;">$Logout</span> = <span style="color: #000000; font-weight: bold;">true</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$Logout</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// The user clicked on "Logout"</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'You are now logged out.'</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'<br/>'</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'<a href="http://'</span>.<span style="color: #0000ff;">$CurrentUrl</span>.<span style="color: #ff0000;">'">Login again</a>'</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$LoginSuccessful</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// The user entered the correct login data, put</span>
<span style="color: #808080; font-style: italic;">// your confidential data in here: </span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'You reached the secret page!<br/>'</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'<br/>'</span>;
<span style="color: #808080; font-style: italic;">// This will not clear the authentication cache, but</span>
<span style="color: #808080; font-style: italic;">// it will replace the "real" login data with bogus data</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'<a href="http://reset:reset@'</span>. <span style="color: #0000ff;">$CurrentUrl</span> .<span style="color: #ff0000;">'?Logout=1">Logout</a>'</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">/*
** The user gets here if:
**
** 1. The user entered incorrect login data (three times)
** --> User will see the error message from below
**
** 2. Or the user requested the page for the first time
** --> Then the 401 headers apply and the "login box" will
** be shown
*/</span>
<span style="color: #808080; font-style: italic;">// The text inside the realm section will be visible for the </span>
<span style="color: #808080; font-style: italic;">// user in the login box</span>
<a href="http://www.php.net/header"><span style="color: #000066;">header</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'WWW-Authenticate: Basic realm="Top-secret area"'</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/header"><span style="color: #000066;">header</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'HTTP/1.0 401 Unauthorized'</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// Error message</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">"Sorry, login failed!<span style="color: #000099; font-weight: bold;">\n</span>"</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">"<br/>"</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'<a href="http://'</span> . <span style="color: #0000ff;">$CurrentUrl</span> . <span style="color: #ff0000;">'">Try again</a>'</span>;
<span style="color: #66cc66;">}</span>
php 数字后缀
为给定数字添加后缀(第1,第2,第3 ......)
<span style="color: #808080; font-style: italic;">// Also, increasing the range above the condition statements</span>
<span style="color: #808080; font-style: italic;">// increases efficiency. That's almost 20% of the numbers </span>
<span style="color: #808080; font-style: italic;">// between 0 and 100 that get to end early.</span>
<span style="color: #000000; font-weight: bold;">function</span> number_suffix<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$number</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// Validate and translate our input</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span> <a href="http://www.php.net/is_numeric"><span style="color: #000066;">is_numeric</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$number</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// Get the last two digits (only once)</span>
<span style="color: #0000ff;">$n</span> = <span style="color: #0000ff;">$number</span> % <span style="color: #cc66cc;">100</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// If the last two characters are numbers</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span> <a href="http://www.php.net/preg_match"><span style="color: #000066;">preg_match</span></a><span style="color: #66cc66;">(</span> <span style="color: #ff0000;">'/[0-9]?[0-9]$/'</span>, <span style="color: #0000ff;">$number</span>, <span style="color: #0000ff;">$matches</span> <span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// Return the last one or two digits</span>
<span style="color: #0000ff;">$n</span> = <a href="http://www.php.net/array_pop"><span style="color: #000066;">array_pop</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$matches</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// Return the string, we can add a suffix to it</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">// Skip the switch for as many numbers as possible.</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span> <span style="color: #0000ff;">$n</span> > <span style="color: #cc66cc;">3</span> && <span style="color: #0000ff;">$n</span> < <span style="color: #cc66cc;">21</span> <span style="color: #66cc66;">)</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span> . <span style="color: #ff0000;">'th'</span>;
<span style="color: #808080; font-style: italic;">// Determine the suffix for numbers ending in 1, 2 or 3, otherwise add a 'th'</span>
<span style="color: #b1b100;">switch</span> <span style="color: #66cc66;">(</span> <span style="color: #0000ff;">$n</span> % <span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'1'</span>: <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span> . <span style="color: #ff0000;">'st'</span>;
<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'2'</span>: <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span> . <span style="color: #ff0000;">'nd'</span>;
<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'3'</span>: <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span> . <span style="color: #ff0000;">'rd'</span>;
<span style="color: #000000; font-weight: bold;">default</span>: <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span> . <span style="color: #ff0000;">'th'</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #66cc66;">}</span>
php 经过的微量计时器
计算执行某个过程时经过的秒数。
<span style="color: #808080; font-style: italic;">// mt_get: returns the current microtime</span>
<span style="color: #000000; font-weight: bold;">function</span> mt_get<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<a href="http://www.php.net/global"><span style="color: #000066;">global</span></a> <span style="color: #0000ff;">$mt_time</span>;
<a href="http://www.php.net/list"><span style="color: #000066;">list</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$usec</span>, <span style="color: #0000ff;">$sec</span><span style="color: #66cc66;">)</span> = <a href="http://www.php.net/explode"><span style="color: #000066;">explode</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">" "</span>, <a href="http://www.php.net/microtime"><span style="color: #000066;">microtime</span></a><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">(</span><span style="color: #66cc66;">(</span>float<span style="color: #66cc66;">)</span><span style="color: #0000ff;">$usec</span> + <span style="color: #66cc66;">(</span>float<span style="color: #66cc66;">)</span><span style="color: #0000ff;">$sec</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">// mt_start: starts the microtime counter</span>
<span style="color: #000000; font-weight: bold;">function</span> mt_start<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<a href="http://www.php.net/global"><span style="color: #000066;">global</span></a> <span style="color: #0000ff;">$mt_time</span>; <span style="color: #0000ff;">$mt_time</span> = mt_get<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">// mt_end: calculates the elapsed time</span>
<span style="color: #000000; font-weight: bold;">function</span> mt_end<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$len</span>=<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<a href="http://www.php.net/global"><span style="color: #000066;">global</span></a> <span style="color: #0000ff;">$mt_time</span>;
<span style="color: #0000ff;">$time_end</span> = mt_get<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">return</span> <a href="http://www.php.net/round"><span style="color: #000066;">round</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$time_end</span> - <span style="color: #0000ff;">$mt_time</span>, <span style="color: #0000ff;">$len</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
php 创建数组范围
创建一个范围为from的数组
<span style="color: #000000; font-weight: bold;">function</span> array_range<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$from</span>, <span style="color: #0000ff;">$to</span>, <span style="color: #0000ff;">$step</span>=<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$array</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;">for</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$x</span>=<span style="color: #0000ff;">$from</span>; <span style="color: #0000ff;">$x</span> <= <span style="color: #0000ff;">$to</span>; <span style="color: #0000ff;">$x</span> += <span style="color: #0000ff;">$step</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$array</span><span style="color: #66cc66;">[</span><span style="color: #66cc66;">]</span> = <span style="color: #0000ff;">$x</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$array</span>;
<span style="color: #66cc66;">}</span>
<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">(</span>array_range<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">/*
returns:
Array
(
[0] => 0
[1] => 5
[2] => 10
[3] => 15
[4] => 20
)
*/</span>
php 自动更新版权
一个简短的功能,可以帮助您将当前年份保留在您的版权判决中。
<span style="color: #000000; font-weight: bold;">function</span> autoUpdatingCopyright<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$startYear</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// given start year (e.g. 2004)</span>
<span style="color: #0000ff;">$startYear</span> = <a href="http://www.php.net/intval"><span style="color: #000066;">intval</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$startYear</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// current year (e.g. 2007)</span>
<span style="color: #0000ff;">$year</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/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">'Y'</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// is the current year greater than the</span>
<span style="color: #808080; font-style: italic;">// given start year?</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$year</span> > <span style="color: #0000ff;">$startYear</span><span style="color: #66cc66;">)</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$startYear</span> .<span style="color: #ff0000;">'-'</span>. <span style="color: #0000ff;">$year</span>;
<span style="color: #b1b100;">else</span>
<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$startYear</span>;
<span style="color: #66cc66;">}</span>
php 随机数组元素
返回给定数组的随机元素。
<span style="color: #000000; font-weight: bold;">function</span> random_array_element<span style="color: #66cc66;">(</span>&<span style="color: #0000ff;">$a</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<a href="http://www.php.net/mt_srand"><span style="color: #000066;">mt_srand</span></a><span style="color: #66cc66;">(</span><span style="color: #66cc66;">(</span>double<span style="color: #66cc66;">)</span><a href="http://www.php.net/microtime"><span style="color: #000066;">microtime</span></a><span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span>*<span style="color: #cc66cc;">1000000</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// get all array keys:</span>
<span style="color: #0000ff;">$k</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: #808080; font-style: italic;">// find a random array key:</span>
<span style="color: #0000ff;">$r</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: #cc66cc;">0</span>, <a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$k</span><span style="color: #66cc66;">)</span><span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">)</span>;
<span style="color: #0000ff;">$rk</span> = <span style="color: #0000ff;">$k</span><span style="color: #66cc66;">[</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">]</span>;
<span style="color: #808080; font-style: italic;">// return the random key (if exists):</span>
<span style="color: #b1b100;">return</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;">$rk</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;">$rk</span><span style="color: #66cc66;">]</span> : <span style="color: #ff0000;">''</span>;
<span style="color: #66cc66;">}</span>
php Natsort的例子
与sort()相比,显示了natsort()的优点。
<span style="color: #808080; font-style: italic;">// create a example array</span>
<span style="color: #0000ff;">$array_1</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span>
<span style="color: #ff0000;">'pic10.jpg'</span>, <span style="color: #ff0000;">'pic3.jpg'</span>, <span style="color: #ff0000;">'pic1.jpg'</span>,
<span style="color: #ff0000;">'pic7.jpg'</span>, <span style="color: #ff0000;">'pic99.jpg'</span>, <span style="color: #ff0000;">'pic127.jpg'</span>
<span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">// copy array 1</span>
<span style="color: #0000ff;">$array_2</span> = <span style="color: #0000ff;">$array_1</span>;
<a href="http://www.php.net/sort"><span style="color: #000066;">sort</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array_1</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">"Standard sorting algorithm:<br/><span style="color: #000099; font-weight: bold;">\n</span>"</span>;
<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array_1</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>"</span>;
<a href="http://www.php.net/natsort"><span style="color: #000066;">natsort</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array_2</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">"Natural order sorting:<br/><span style="color: #000099; font-weight: bold;">\n</span>"</span>;
<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$array_2</span><span style="color: #66cc66;">)</span>;
<span style="color: #808080; font-style: italic;">/*
Output:
Standard sorting algorithm
Array
(
[0] => pic1.jpg
[1] => pic10.jpg
[2] => pic127.jpg
[3] => pic3.jpg
[4] => pic7.jpg
[5] => pic99.jpg
)
Natural order sorting
Array
(
[2] => pic1.jpg
[1] => pic3.jpg
[3] => pic7.jpg
[0] => pic10.jpg
[4] => pic99.jpg
[5] => pic127.jpg
)
*/</span>
php 探测法
演示如何使用soundex()函数测试单词听起来是否相似。
<span style="color: #0000ff;">$word2find</span> = <span style="color: #ff0000;">'stupid'</span>;
<span style="color: #0000ff;">$words</span> = <a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span>
<span style="color: #ff0000;">'stupid'</span>,
<span style="color: #ff0000;">'stu and pid'</span>,
<span style="color: #ff0000;">'hello'</span>,
<span style="color: #ff0000;">'foobar'</span>,
<span style="color: #ff0000;">'stpid'</span>,
<span style="color: #ff0000;">'supid'</span>,
<span style="color: #ff0000;">'stuuupid'</span>,
<span style="color: #ff0000;">'sstuuupiiid'</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;">$id</span>, <span style="color: #0000ff;">$str</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;">$words</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$soundex_code</span> = <a href="http://www.php.net/soundex"><span style="color: #000066;">soundex</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">)</span>;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><a href="http://www.php.net/soundex"><span style="color: #000066;">soundex</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$word2find</span><span style="color: #66cc66;">)</span> == <span style="color: #0000ff;">$soundex_code</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'"'</span> . <span style="color: #0000ff;">$word2find</span> . <span style="color: #ff0000;">'" sounds like '</span> . <span style="color: #0000ff;">$str</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'"'</span> . <span style="color: #0000ff;">$word2find</span> . <span style="color: #ff0000;">'" sounds not like '</span> . <span style="color: #0000ff;">$str</span>;
<span style="color: #66cc66;">}</span>
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">"<span style="color: #000099; font-weight: bold;">\n</span>"</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #808080; font-style: italic;">/*
result:
"stupid" sounds like stupid
"stupid" sounds not like stu and pid
"stupid" sounds not like hello
"stupid" sounds not like foobar
"stupid" sounds like stpid
"stupid" sounds not like supid
"stupid" sounds like stuuupid
"stupid" sounds like sstuuupiiid
*/</span>
php Wordwrap示例
演示了如何使用内置函数“wordwrap”。按用户定义的长度创建换行符。
<span style="color: #808080; font-style: italic;">// create a long text for testing:</span>
<span style="color: #0000ff;">$long_text</span> = <span style="color: #ff0000;">'This is a long text to demonstrate the usage of the '</span>;
<span style="color: #0000ff;">$long_text</span> .= <span style="color: #ff0000;">'wordwrap function. '</span>;
<span style="color: #0000ff;">$long_text</span> .= <span style="color: #ff0000;">'Fooooooooooooooooobar, just fooling around'</span>;
<span style="color: #808080; font-style: italic;">// syntax: wordwrap(input string, line max. width, break chars, cut words)</span>
<span style="color: #0000ff;">$new_text</span> = <a href="http://www.php.net/wordwrap"><span style="color: #000066;">wordwrap</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$long_text</span>, <span style="color: #cc66cc;">15</span>, <span style="color: #ff0000;">"<br/><span style="color: #000099; font-weight: bold;">\n</span>"</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">)</span>;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #0000ff;">$new_text</span>;
<span style="color: #808080; font-style: italic;">/*
The output will be:
This is a long<br/>
text to<br/>
demonstrate the<br/>
usage of the<br/>
wordwrap<br/>
function.<br/>
Foooooooooooooo<br/>
ooobar, just<br/>
fooling around
*/</span>
php 调试值辅助函数
返回变量的人类可读版本
<span style="color: #000000; font-weight: bold;">function</span> dval<span style="color: #66cc66;">(</span><span style="color: #0000ff;">$val</span>, <span style="color: #0000ff;">$print</span>=<span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #0000ff;">$method</span>=<span style="color: #ff0000;">'var_export'</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #808080; font-style: italic;">// dval = Debug a VALue -> easy to remember for me</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$method</span> == <span style="color: #ff0000;">'var_export'</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$r</span> = <a href="http://www.php.net/var_export"><span style="color: #000066;">var_export</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$val</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span>
<span style="color: #0000ff;">$r</span> = <a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$val</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">)</span>;
<span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$print</span><span style="color: #66cc66;">)</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> . <a href="http://www.php.net/htmlspecialchars"><span style="color: #000066;">htmlspecialchars</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">)</span> . <span style="color: #ff0000;">"]]</pre>"</span>; <span style="color: #66cc66;">}</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span> <span style="color: #b1b100;">return</span> <span style="color: #ff0000;">"<pre>[["</span> . <a href="http://www.php.net/htmlspecialchars"><span style="color: #000066;">htmlspecialchars</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">)</span> . <span style="color: #ff0000;">"]]</pre>"</span>; <span style="color: #66cc66;">}</span>
<span style="color: #66cc66;">}</span>