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>;
&nbsp;
<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>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Check username and password:</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;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PHP_AUTH_USER'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> &amp;&amp; <a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PHP_AUTH_PW'</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>
&nbsp;
    <span style="color: #0000ff;">$usr</span> = <span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PHP_AUTH_USER'</span><span style="color: #66cc66;">&#93;</span>;
    <span style="color: #0000ff;">$pwd</span> = <span style="color: #0000ff;">$_SERVER</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'PHP_AUTH_PW'</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
    <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;">&#40;</span><span style="color: #0000ff;">$usr</span> == <span style="color: #ff0000;">'jonas'</span> &amp;&amp; <span style="color: #0000ff;">$pwd</span> == <span style="color: #ff0000;">'foobar'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$LoginSuccessful</span> = <span style="color: #000000; font-weight: bold;">true</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$usr</span> == <span style="color: #ff0000;">'reset'</span> &amp;&amp; <span style="color: #0000ff;">$pwd</span> == <span style="color: #ff0000;">'reset'</span> &amp;&amp; <a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_GET</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'Logout'</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: #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;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$Logout</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// The user clicked on &quot;Logout&quot;</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;">'&lt;br/&gt;'</span>;
    <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&lt;a href=&quot;http://'</span>.<span style="color: #0000ff;">$CurrentUrl</span>.<span style="color: #ff0000;">'&quot;&gt;Login again&lt;/a&gt;'</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$LoginSuccessful</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <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!&lt;br/&gt;'</span>;
    <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&lt;br/&gt;'</span>;
&nbsp;
    <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 &quot;real&quot; login data with bogus data</span>
    <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&lt;a href=&quot;http://reset:reset@'</span>. <span style="color: #0000ff;">$CurrentUrl</span> .<span style="color: #ff0000;">'?Logout=1&quot;&gt;Logout&lt;/a&gt;'</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">/* 
    ** The user gets here if:
    ** 
    ** 1. The user entered incorrect login data (three times)
    **     --&gt; User will see the error message from below
    **
    ** 2. Or the user requested the page for the first time
    **     --&gt; Then the 401 headers apply and the &quot;login box&quot; will
    **         be shown
    */</span>
&nbsp;
    <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;">&#40;</span><span style="color: #ff0000;">'WWW-Authenticate: Basic realm=&quot;Top-secret area&quot;'</span><span style="color: #66cc66;">&#41;</span>;
    <a href="http://www.php.net/header"><span style="color: #000066;">header</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'HTTP/1.0 401 Unauthorized'</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <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;">&quot;Sorry, login failed!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
    <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">&quot;&lt;br/&gt;&quot;</span>;
    <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&lt;a href=&quot;http://'</span> . <span style="color: #0000ff;">$CurrentUrl</span> . <span style="color: #ff0000;">'&quot;&gt;Try again&lt;/a&gt;'</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</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>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> number_suffix<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$number</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">// Validate and translate our input</span>
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <a href="http://www.php.net/is_numeric"><span style="color: #000066;">is_numeric</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$number</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
        <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>;
&nbsp;
    <span style="color: #66cc66;">&#125;</span> 
    <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</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;">&#40;</span> <a href="http://www.php.net/preg_match"><span style="color: #000066;">preg_match</span></a><span style="color: #66cc66;">&#40;</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;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
            <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;">&#40;</span><span style="color: #0000ff;">$matches</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span> 
        <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
&nbsp;
            <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;">&#125;</span>
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <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;">&#40;</span> <span style="color: #0000ff;">$n</span> &gt; <span style="color: #cc66cc;">3</span> &amp;&amp; <span style="color: #0000ff;">$n</span> &lt; <span style="color: #cc66cc;">21</span> <span style="color: #66cc66;">&#41;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$number</span> . <span style="color: #ff0000;">'th'</span>;
&nbsp;
    <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;">&#40;</span> <span style="color: #0000ff;">$n</span> % <span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</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;">&#125;</span>
<span style="color: #66cc66;">&#125;</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;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</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;">&#40;</span><span style="color: #0000ff;">$usec</span>, <span style="color: #0000ff;">$sec</span><span style="color: #66cc66;">&#41;</span> = <a href="http://www.php.net/explode"><span style="color: #000066;">explode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot; &quot;</span>, <a href="http://www.php.net/microtime"><span style="color: #000066;">microtime</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>float<span style="color: #66cc66;">&#41;</span><span style="color: #0000ff;">$usec</span> + <span style="color: #66cc66;">&#40;</span>float<span style="color: #66cc66;">&#41;</span><span style="color: #0000ff;">$sec</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<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;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</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;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<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;">&#40;</span><span style="color: #0000ff;">$len</span>=<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</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;">&#40;</span><span style="color: #66cc66;">&#41;</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;">&#40;</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;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>

php 创建数组范围

创建一个范围为from的数组

<span style="color: #000000; font-weight: bold;">function</span> array_range<span style="color: #66cc66;">&#40;</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;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #0000ff;">$array</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;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$x</span>=<span style="color: #0000ff;">$from</span>; <span style="color: #0000ff;">$x</span> &lt;= <span style="color: #0000ff;">$to</span>; <span style="color: #0000ff;">$x</span> += <span style="color: #0000ff;">$step</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <span style="color: #0000ff;">$array</span><span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #0000ff;">$x</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$array</span>;
&nbsp;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">&#40;</span>array_range<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">20</span>, <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">/*
returns:
&nbsp;
Array
(
    [0] =&gt; 0
    [1] =&gt; 5
    [2] =&gt; 10
    [3] =&gt; 15
    [4] =&gt; 20
)
*/</span>

php 自动更新版权

一个简短的功能,可以帮助您将当前年份保留在您的版权判决中。

<span style="color: #000000; font-weight: bold;">function</span> autoUpdatingCopyright<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$startYear</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <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;">&#40;</span><span style="color: #0000ff;">$startYear</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <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;">&#40;</span><a href="http://www.php.net/date"><span style="color: #000066;">date</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Y'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <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;">&#40;</span><span style="color: #0000ff;">$year</span> &gt; <span style="color: #0000ff;">$startYear</span><span style="color: #66cc66;">&#41;</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;">&#125;</span>

php 随机数组元素

返回给定数组的随机元素。

<span style="color: #000000; font-weight: bold;">function</span> random_array_element<span style="color: #66cc66;">&#40;</span>&amp;<span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <a href="http://www.php.net/mt_srand"><span style="color: #000066;">mt_srand</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>double<span style="color: #66cc66;">&#41;</span><a href="http://www.php.net/microtime"><span style="color: #000066;">microtime</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>*<span style="color: #cc66cc;">1000000</span><span style="color: #66cc66;">&#41;</span>;  
&nbsp;
    <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;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <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;">&#40;</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;">&#40;</span><span style="color: #0000ff;">$k</span><span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #0000ff;">$rk</span> = <span style="color: #0000ff;">$k</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">&#93;</span>;
&nbsp;
    <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;">&#40;</span><span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$rk</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> ? <span style="color: #0000ff;">$a</span><span style="color: #66cc66;">&#91;</span><span style="color: #0000ff;">$rk</span><span style="color: #66cc66;">&#93;</span> : <span style="color: #ff0000;">''</span>;
<span style="color: #66cc66;">&#125;</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;">&#40;</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;">&#41;</span>;
&nbsp;
<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>;
&nbsp;
&nbsp;
<a href="http://www.php.net/sort"><span style="color: #000066;">sort</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array_1</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">&quot;Standard sorting algorithm:&lt;br/&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array_1</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;">&quot;<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
&nbsp;
&nbsp;
<a href="http://www.php.net/natsort"><span style="color: #000066;">natsort</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array_2</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">&quot;Natural order sorting:&lt;br/&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$array_2</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">/*
Output:
&nbsp;
Standard sorting algorithm
Array
(
    [0] =&gt; pic1.jpg
    [1] =&gt; pic10.jpg
    [2] =&gt; pic127.jpg
    [3] =&gt; pic3.jpg
    [4] =&gt; pic7.jpg
    [5] =&gt; pic99.jpg
)
&nbsp;
&nbsp;
Natural order sorting
Array
(
    [2] =&gt; pic1.jpg
    [1] =&gt; pic3.jpg
    [3] =&gt; pic7.jpg
    [0] =&gt; pic10.jpg
    [4] =&gt; pic99.jpg
    [5] =&gt; pic127.jpg
)
*/</span>

php 探测法

演示如何使用soundex()函数测试单词听起来是否相似。

<span style="color: #0000ff;">$word2find</span> = <span style="color: #ff0000;">'stupid'</span>;
&nbsp;
<span style="color: #0000ff;">$words</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;">'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;">&#41;</span>;
&nbsp;
<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;">$id</span>, <span style="color: #0000ff;">$str</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;">$words</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
    <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;">&#40;</span><span style="color: #0000ff;">$str</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/soundex"><span style="color: #000066;">soundex</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$word2find</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #0000ff;">$soundex_code</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
        <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&quot;'</span> . <span style="color: #0000ff;">$word2find</span> . <span style="color: #ff0000;">'&quot; sounds like '</span> . <span style="color: #0000ff;">$str</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
        <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'&quot;'</span> . <span style="color: #0000ff;">$word2find</span> . <span style="color: #ff0000;">'&quot; sounds not like '</span> . <span style="color: #0000ff;">$str</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*
result:
&nbsp;
&quot;stupid&quot; sounds like stupid
&quot;stupid&quot; sounds not like stu and pid
&quot;stupid&quot; sounds not like hello
&quot;stupid&quot; sounds not like foobar
&quot;stupid&quot; sounds like stpid
&quot;stupid&quot; sounds not like supid
&quot;stupid&quot; sounds like stuuupid
&quot;stupid&quot; 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>;
&nbsp;
<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;">&#40;</span><span style="color: #0000ff;">$long_text</span>, <span style="color: #cc66cc;">15</span>, <span style="color: #ff0000;">&quot;&lt;br/&gt;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #0000ff;">$new_text</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">/* 
The output will be:
&nbsp;
This is a long&lt;br/&gt;
text to&lt;br/&gt;
demonstrate the&lt;br/&gt;
usage of the&lt;br/&gt;
wordwrap&lt;br/&gt;
function.&lt;br/&gt;
Foooooooooooooo&lt;br/&gt;
ooobar, just&lt;br/&gt;
fooling around
&nbsp;
*/</span>

php 调试值辅助函数

返回变量的人类可读版本

<span style="color: #000000; font-weight: bold;">function</span> dval<span style="color: #66cc66;">&#40;</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;">&#41;</span><span style="color: #66cc66;">&#123;</span> 
&nbsp;
    <span style="color: #808080; font-style: italic;">// dval = Debug a VALue -&gt; easy to remember for me</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$method</span> == <span style="color: #ff0000;">'var_export'</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/var_export"><span style="color: #000066;">var_export</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$val</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</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;">&#40;</span><span style="color: #0000ff;">$val</span>, <span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$print</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> <a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">&quot;&lt;pre&gt;[[&quot;</span> . <a href="http://www.php.net/htmlspecialchars"><span style="color: #000066;">htmlspecialchars</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">&#41;</span> . <span style="color: #ff0000;">&quot;]]&lt;/pre&gt;&quot;</span>; <span style="color: #66cc66;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #b1b100;">return</span> <span style="color: #ff0000;">&quot;&lt;pre&gt;[[&quot;</span> . <a href="http://www.php.net/htmlspecialchars"><span style="color: #000066;">htmlspecialchars</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$r</span><span style="color: #66cc66;">&#41;</span> . <span style="color: #ff0000;">&quot;]]&lt;/pre&gt;&quot;</span>; <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>