0

Windows で Zend Server 6.3 と Php 5.4 を使用しています。そして、システムは非常にうまく機能します。コードをライブ サイトに移動しました。これは、DirectAdmin を使用して Ubuntu サーバーで Php 5.3.29 を実行します。他のすべての Web サイトは正常に動作しています。しかし、現在の Web サイトでは次のエラーが表示されます (このサイトは WordPress 4.3 上にあります)。

Warning: mysql_connect(): Headers and client library minor version mismatch.
Headers:50541 Library:50623 in /home/cheapauto/domains/*DOMAIN*/public_html/wp-includes/wp-db.php on line 1482
Parse error: syntax error, unexpected '[' in /home/*USER*/domains/*DOMAIN*/public_html/wp-content/plugins/*MY-PLUGIN*/includes/final.class.NRSBooking.php on line 101 

行は次のとおりです。

$now = explode(' ', microtime())[1];

そして、私のプラグイン機能全体は次のとおりです。

private function getIncrementalHash($length = 5)
{
    //$charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    $charset = "ABCDEFGHIJKLMNPRSTUVYZ"; // fits LT & EN, O is skipped to similarity to Zero
    $charsetLength = strlen($charset);
    $result = '';

    $now = explode(' ', microtime())[1];
    while ($now >= $charsetLength)
    {
        $i = $now % $charsetLength;
        $result = $charset[$i] . $result;
        $now /= $charsetLength;
    }
    return substr($result, -$length);
}

ライブサイトで動作させる方法はありますか?

Phpリファレンスhttp://php.net/manual/en/function.microtime.php によると、次のように書かれています:

microtime() は、現在の Unix タイムスタンプをマイクロ秒単位で返します。この関数は、 gettimeofday() システム コールをサポートするオペレーティング システムでのみ使用できます。

そして、その関数を使用して一意の新しい予約コードを生成します。

$newBookingCode = "R".$validNextMySQLInsertId."A".$this->getIncrementalHash(5);

ありがとうございました!

4

1 に答える 1

2

配列の逆参照、つまり次のような配列を返す関数から結果を取得します。

$now = explode(' ', microtime())[1];

php5.4以降で利用可能

php5.3以前の使用の場合:

$now = explode(' ', microtime());
$now = $now[1];
于 2015-09-07T19:27:09.123 に答える