本文目錄一覽:
- 1、如何用phpfor循環生成5位,數字字母組合,永不不重複
- 2、如何使用PhpDocumentor生成文檔
- 3、ASP/PHP中如何獲得GUID字元串
- 4、thinkphp怎麼生成唯一標識
- 5、如何用 PHP 生成 Word 文檔
- 6、php GUID生成函數和類
如何用phpfor循環生成5位,數字字母組合,永不不重複
如果你希望永不重複 建議採用 PHP GUID
GUID是什麼
GUID: 即Globally Unique Identifier(全球唯一標識符) 也稱作 UUID(Universally Unique IDentifier) 。 GUID是一個通過特定演算法產生的二進位長度為128位的數字標識符,用於指示產品的唯一性。GUID 主要用於在擁有多個節點、多台計算機的網路或系統中,分配必須具有唯一性的標識符。
PHP中並不提供GUID的內部實現。為此我們可以自己寫演算法實現。代碼片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// “-“
$uuid = chr(123)// “{“
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// “}”
return $uuid;
}
如何使用PhpDocumentor生成文檔
命令行方式:
在phpDocumentor所在目錄下,輸入phpdoc –h會得到一個詳細的參數表,其中幾個重要的參數如下:
-f 要進行分析的文件名,多個文件用逗號隔開
-d 要分析的目錄,多個目錄用逗號分割
-t 生成的文檔的存放路徑
-o 輸出的文檔格式,結構為輸出格式:轉換器名:模板目錄。
例如:phpdoc -o HTML:frames:earthli -f test.php -t docs
Web界面生成
在新的phpdoc中,除了在命令行下生成文檔外,還可以在客戶端瀏覽器上操作生成文檔,具體方法是先把PhpDocumentor的內容放在apache目錄下使得通過瀏覽器可以訪問到,訪問後顯示如下的界面:
點擊files按鈕,選擇要處理的php文件或文件夾,還可以通過該指定該界面下的Files to ignore來忽略對某些文件的處理。
然後點擊output按鈕來選擇生成文檔的存放路徑和格式.
最後點擊create,phpdocumentor就會自動開始生成文檔了,最下方會顯示生成的進度及狀態,如果成功,會顯示
Total Documentation Time: 1 seconds
done
Operation Completed!!
然後,我們就可以通過查看生成的文檔了,如果是pdf格式的,名字默認為documentation.pdf。
給php代碼添加規範的注釋
PHPDocument是從你的源代碼的注釋中生成文檔,因此在給你的程序做注釋的過程,也就是你編製文檔的過程。
從這一點上講,PHPdoc促使你要養成良好的編程習慣,盡量使用規範,清晰文字為你的程序做注釋,同時多多少少也避免了事後編製文檔和文檔的更新不同步的一些問題。
在phpdocumentor中,注釋分為文檔性注釋和非文檔性注釋。
所謂文檔性注釋,是那些放在特定關鍵字前面的多行注釋,特定關鍵字是指能夠被phpdoc分析的關鍵字,例如class,var等,具體的可參加附錄1.
那些沒有在關鍵字前面或者不規範的注釋就稱作非文檔性注釋,這些注釋將不會被phpdoc所分析,也不會出現在你產生的api文當中。
ASP/PHP中如何獲得GUID字元串
asp下生成guid的代碼
%
Dim objTypeLib
Set objTypeLib = CreateObject(“Scriptlet.TypeLib”)
Response.Write objTypeLib.Guid
%
php下生成guid要用到class .
guid.class.php文件代碼如下:
?
class System
{
function currentTimeMillis()
{
list($usec, $sec) = explode(” “,microtime());
return $sec.substr($usec, 2, 3);
}
}
class NetAddress
{
var $Name = ‘localhost’;
var $IP = ‘127.0.0.1’;
function getLocalHost() // static
{
$address = new NetAddress();
$address-Name = $_ENV[“COMPUTERNAME”];
$address-IP = $_SERVER[“SERVER_ADDR”];
return $address;
}
function toString()
{
return strtolower($this-Name.’/’.$this-IP);
}
}
class Random
{
function nextLong()
{
$tmp = rand(0,1)?’-‘:”;
return $tmp.rand(1000, 9999).rand(1000, 9999).rand(1000, 9999).rand(100, 999).rand(100, 999);
}
}
// 三段
// 一段是微秒 一段是地址 一段是隨機數
class Guid
{
var $valueBeforeMD5;
var $valueAfterMD5;
function Guid()
{
$this-getGuid();
}
//
function getGuid()
{
$address = NetAddress::getLocalHost();
$this-valueBeforeMD5 = $address-toString().’:’.System::currentTimeMillis().’:’.Random::nextLong();
$this-valueAfterMD5 = md5($this-valueBeforeMD5);
}
function newGuid()
{
$Guid = new Guid();
return $Guid;
}
function toString()
{
$raw = strtoupper($this-valueAfterMD5);
return substr($raw,0,8).’-‘.substr($raw,8,4).’-‘.substr($raw,12,4).’-‘.substr($raw,16,4).’-‘.substr($raw,20);
}
}
?
guid.php文件
?php
require_once(“guid.class.php”);
$Guid = new Guid();
print $Guid-toString();
?
thinkphp怎麼生成唯一標識
1、md5(time() . mt_rand(1,1000000));
這種方法有一定的概率會出現重複
2、php內置函數uniqid()
uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID.
w3school參考手冊有一句話:”由於基於系統時間,通過該函數生成的 ID 不是最佳的。如需生成絕對唯一的 ID,請使用 md5() 函數”。
3、官方uniqid()參考手冊有用戶提供的方法,結果類似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}
public function create_guid($namespace = ”) {
static $guid = ”;
$uid = uniqid(“”, true);
$data = $namespace;
$data .= $_SERVER[‘REQUEST_TIME’];
$data .= $_SERVER[‘HTTP_USER_AGENT’];
$data .= $_SERVER[‘LOCAL_ADDR’];
$data .= $_SERVER[‘LOCAL_PORT’];
$data .= $_SERVER[‘REMOTE_ADDR’];
$data .= $_SERVER[‘REMOTE_PORT’];
$hash = strtoupper(hash(‘ripemd128’, $uid . $guid . md5($data)));
$guid = ‘{‘ .
substr($hash, 0, 8) .
‘-‘ .
substr($hash, 8, 4) .
‘-‘ .
substr($hash, 12, 4) .
‘-‘ .
substr($hash, 16, 4) .
‘-‘ .
substr($hash, 20, 12) .
‘}’;
return $guid;
}
如何用 PHP 生成 Word 文檔
PHP 生成 word 文檔,可以考慮以下兩類辦法:
1. 利用 windows 系統提供的 com組件。
這種方法的原理,是使用 php 的調用 com 組件功能函數,如果系統里安裝過 office 的伺服器,就可以調用 word.application 。
2. 利用PHP將內容寫入doc文件之中。
這種方法,難分為兩種,一種是生成mht格式寫入word,另一種是編寫純 HTML 格式寫入word。這種方法是基於 word 對 html 的良好支持。
php GUID生成函數和類
一、GUID簡介
GUID:
即Globally
Unique
Identifier(全球唯一標識符)
也稱作
UUID(Universally
Unique
IDentifier)
。
GUID是一個通過特定演算法產生的二進位長度為128位的數字標識符,用於指示產品的唯一性。GUID
主要用於在擁有多個節點、多台計算機的網路或系統中,分配必須具有唯一性的標識符。
在
Windows
平台上,GUID
廣泛應用於微軟的產品中,用於標識如如註冊表項、類及介面標識、資料庫、系統目錄等對象。
GUID
的格式為「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」,其中每個
x
是
0-9
或
a-f
範圍內的一個32位十六進位數。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF
即為有效的
GUID
值。
二、GUID的優點
1.GUID在空間上和時間上具有唯一性,保證同一時間不同地方產生的數字不同。
2.世界上的任何兩台計算機都不會生成重複的
GUID
值。
3.需要GUID的時候,可以完全由演算法自動生成,不需要一個權威機構來管理。
4.GUID的長度固定,並且相對而言較短小,非常適合於排序、標識和存儲。
三、GUID生成函數
複製代碼
代碼如下:
function
create_guid()
{
$charid
=
strtoupper(md5(uniqid(mt_rand(),
true)));
$hyphen
=
chr(45);//
“-“
$uuid
=
chr(123)//
“{“
.substr($charid,
0,
8).$hyphen
.substr($charid,
8,
4).$hyphen
.substr($charid,12,
4).$hyphen
.substr($charid,16,
4).$hyphen
.substr($charid,20,12)
.chr(125);//
“}”
return
$uuid;
}
三、GUID生成類
PHP獲得GUID類:guid_class.php
複製代碼
代碼如下:
?php
class
System
{
function
currentTimeMillis()
{
list($usec,
$sec)
=
explode(“
“,microtime());
return
$sec.substr($usec,
2,
3);
}
}
class
NetAddress
{
var
$Name
=
‘localhost’;
var
$IP
=
‘127.0.0.1’;
function
getLocalHost()
//
static
{
$address
=
new
NetAddress();
$address-Name
=
$_ENV[“COMPUTERNAME”];
$address-IP
=
$_SERVER[“SERVER_ADDR”];
return
$address;
}
function
toString()
{
return
strtolower($this-Name.’/’.$this-IP);
}
}
class
Random
{
function
nextLong()
{
$tmp
=
rand(0,1)?’-‘:”;
return
$tmp.rand(1000,
9999).rand(1000,
9999).rand(1000,
9999).rand(100,
999).rand(100,
999);
}
}
//
三段
//
一段是微秒
一段是地址
一段是隨機數
class
Guid
{
var
$valueBeforeMD5;
var
$valueAfterMD5;
function
Guid()
{
$this-getGuid();
}
//
function
getGuid()
{
$address
=
NetAddress::getLocalHost();
$this-valueBeforeMD5
=
$address-toString().’:’.System::currentTimeMillis().’:’.Random::nextLong();
$this-valueAfterMD5
=
md5($this-valueBeforeMD5);
}
function
newGuid()
{
$Guid
=
new
Guid();
return
$Guid;
}
function
toString()
{
$raw
=
strtoupper($this-valueAfterMD5);
return
substr($raw,0,8).’-‘.substr($raw,8,4).’-‘.substr($raw,12,4).’-‘.substr($raw,16,4).’-‘.substr($raw,20);
}
}
GUID類使用方法:
複製代碼
代碼如下:
require_once(“guid.class.php”);
$Guid
=
new
Guid();
$Guid-toString();
原創文章,作者:ANCXA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329432.html