本文目录一览:
- 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();