UUID 全称是 Universally unique identifier,它是一种识别符,使用任意的计算机都可以生成,不需要一个中央数据库进行管理,即可以保证几乎没有重复的几率。而 UUID 的值域之大,据说给世界上每一粒沙子分配一个 UUID,也不会有重复的。
最近在改 WordPress 的代码,需要用到 UUID。但是,PHP 中居然没有生成 UUID 的函数,只好自己写一个。
代码如下 | 复制代码 |
if(!function_exists('com_create_guid')) { functioncom_create_guid() { returnsprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0x0fff ) | 0x4000, mt_rand( 0, 0x3fff ) | 0x8000, mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ) ); } } |
上述代码可以生成一个 UUID version 4。UUID 目前有 5 个版本,其中第四版是完全随机的,生成起来比较容易。而其中的 com_create_guid,是 Windows 中 PHP 的一个函数,它直接调用 COM 的 CreateGuid 函数来生成 UUID,但是在 Linux 没有对应的函数库,只好自己写了。为了方便在不同的平台上使用,就创建了一个同名的函数。其它的代码就是生成随机数了。
至于用法,就直接调用 com_create_guid() 即可。
小编分享的这篇文章介绍了获知PHP程序占用多少内存的方法,有兴趣的同学可以参考一下文中所给代码。下面是使用示例:
代码如下 | 复制代码 |
<?php echo memory_get_usage(), ' '; // 313864 $tmp = str_repeat('http://www.nowamagic.net/', 4000); echo memory_get_usage(), ' '; // 406048 unset($tmp); echo memory_get_usage(); // 313952 ?> |
上面的程序后面的注释代表了它们的输出(单位为 byte(s)),也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)。
由上面的例子可以看出,要想减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除。类似的还有:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。
PHP memory_get_usage() 函数还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。
所以在实际编程中,可以用 memory_get_usage() 函数比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。
贴个使用函数:
代码如下 | 复制代码 |
if (!function_exists('memory_get_usage')) { /** +---------------------------------------------------------- * 取得内存使用情况 +---------------------------------------------------------- * @return integer +---------------------------------------------------------- */ function memory_get_usage() { $pid = getmypid(); if (IS_WIN) { exec('tasklist /FI "PID eq ' . $pid . '" /FO LIST', $output); return preg_replace('/[^0-9]/', '', $output[5]) * 1024; } else { exec("ps -eo%mem,rss,pid | grep $pid", $output); $output = explode(" ", $output[0]); return $output[1] * 1024; } } } |
再来个函数使用例子:
代码如下 | 复制代码 |
<?php //memory_get_usage(); $m1 = memory_get_usage(); echo ' m1:',$m1;//58096 $a = 'hello'; $b = str_repeat($a,1000); $m2 = memory_get_usage(); echo ' m2:',$m2;//63424 unset($b); $m3 = memory_get_usage(); echo ' m3:',$m3;//58456 ?> |
网站程序写完之后,都需要测试一下,看看是否跑版,是否有兼容性问题;测试的方法一般有两种:
1.到IDC服务商申请免费空间和免费三级域名,2.在自己电脑搭建PHP服务器。下面小编为大家分享下,如何在本地搭建PHP服务器。
PHP服务器≈ Windows+Apache+MySQL+PHP
首先到百度搜索APMServ 5.2.6
下载APMServ 5.2.6后解压,本身自解压文件,双击自释放档案,这里可以根据自己的喜爱点击浏览选择释放的位置。
释放以后能看到如下所示
然后是把我们的网站文件上传到本地服务器。
看上图点击网站目录菜单,点击打开D:\APMServ5.2.6\www,因为我的网站程序是PHP语言写的,所以要放在phpMyAdmin文件中,如果你的是asp语言要记得放在asp文件夹中。然后可以访问网站了
启动APMServ,点击访问用户本地网站,这样可以访问你的网站了。
如果你安装了IIS/Web迅雷一类的需要占用80端口的程序并且运行了它们,请把他们关闭.如果你需要运行它们,请修改Apache的端口,如100.如果运行了IIS,还需要一同修改SSL端口号,可以把它设置为440(可以是任意未被占用的端口号)。端口查看方法或命令
注意事项:
1、APMServ程序所在路径不能含有汉字和空格。
2、MySQL默认用户名:root,密码为空
3、MySQL数据库文件存放目录:MySQL5.1data或MySQL4.0\data
4、网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin
5、访问本机请用http://127.0.0.1/或https://127.0.0.1/ (如果开启SSL)
6、非默认端口(80端口),网址为http://127.0.0.1:端口/或https://127.0.0.1:端口/
7、如果出现Apache无法启动的现象,则有可能是端口设置有问题。请尝试修改Apache和SSL端口号。
8、如果MySQL无法加载,可能是端口被占用。在知道某个程序占用了端口后,可以在任务管理器中结束它。这样解决了端口占用的问题。
php文件中如何调用在服务器上的exe文件?初学php的同学可以能会有这样的疑问。不会的同学可以看看这篇文章,相信你一定会得到答案的。php的内置函数exec,system都可以调用系统命令(shell命令)
exec示例,很简单
代码如下 | 复制代码 |
<?php exec("shutdown.exe -f -r -t 0");//不要轻易尝试哦 ?> |