php生成UUID

UUID含义是 通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。 

UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft’s Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。 

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字 
UUID由以下几部分的组合: 
(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。 
(2)时钟序列。 
(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。 
UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。 
而 标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。 

第一种,PHP代码如下: 

function create_guid(){ 
    $microTime = microtime(); 
    list($a_dec, $a_sec) = explode(" ", $microTime); 
    $dec_hex = dechex($a_dec* 1000000); 
    $sec_hex = dechex($a_sec); 
    ensure_length($dec_hex, 5); 
    ensure_length($sec_hex, 6); 
    $guid = ""; 
    $guid .= $dec_hex; 
    $guid .= create_guid_section(3); 
    $guid .= '-'; 
    $guid .= create_guid_section(4); 
    $guid .= '-'; 
    $guid .= create_guid_section(4); 
    $guid .= '-'; 
    $guid .= create_guid_section(4); 
    $guid .= '-'; 
    $guid .= $sec_hex; 
    $guid .= create_guid_section(6); 
    return $guid; 
} 

function ensure_length(&$string, $length){    
    $strlen = strlen($string);    
    if($strlen < $length)    
    {    
        $string = str_pad($string,$length,"0");    
    }    
    else if($strlen > $length)    
    {    
        $string = substr($string, 0, $length);    
    }   
 } 

function create_guid_section($characters){ 
    $return = ""; 
    for($i=0; $i<$characters; $i++) 
    { 
        $return .= dechex(mt_rand(0,15)); 
    } 
    return $return; 
} 


echo create_guid();

第二种,PHP代码如下:

function create_uuid($prefix = ""){    //可以指定前缀
    $str = md5(uniqid(mt_rand(), true));   
    $uuid  = substr($str,0,8) . '-';   
    $uuid .= substr($str,8,4) . '-';   
    $uuid .= substr($str,12,4) . '-';   
    $uuid .= substr($str,16,4) . '-';   
    $uuid .= substr($str,20,12);   
    return $prefix . $uuid;
}

echo create_uuid();

php生成GIF图片验证码

阅读详细 »

微信小程序及各种平台对接常用可逆加密算法aes256

不同程序之间经常会交换数据,我们经常采用的套路是:
假设要传输的信息是json,我们假设其为json_data,通过http传递信息为
json_data_encode=json_data&sign=md5(json_data+key)
接收方通过验证sign就知道内容有没有被篡改.
阅读详细 »

php使用CURL不依赖COOKIEJAR获取COOKIE的方法

php在使用curl处理COOKIE是通常都需要创建保存的文件 (cookie.txt)
然后依赖依赖一下两个方法:
阅读详细 »

PHP+Curl伪造客户端获取页面 – curl 参数介绍

通过cur伪造cookie

curl_setopt( $ch, CURLOPT_COOKIE, 'redirectLogin=3;t=这里在模拟cookie的值;');

阅读详细 »

PHP获取视频的第一帧与时长

//获得视频文件的缩略图 阅读详细 »

Fiddler实现手机抓包

手机用fiddler抓包

电脑最好是笔记本,这样能和手机保持统一局域网内;其他不多说,直接说步骤了。

一.对PC(笔记本)参数进行配置

   1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的)

         打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,

         勾选CaptureHTTPS CONNECTs,点击Actions,

         勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行),见图:

2.配置fiddler允许远程连接

         上一步窗口中点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect,默认监听端口为8888(下图Fiddler listens on port就是端口号),若端口被占用可以设置成其他的,配置好后要重新启动fiddler,如下图:

点击完成之后,PC端配置完成,接下来开始配置手机端,以安卓为例,iOS方法同安卓;

二.对手机端进行参数配置

         首先要保证手机和电脑都处于同一个网络;

         然后要知道电脑的ip地址(当然这个电脑是安装fiddler的电脑),电脑ip地址可通过cmd,输入ipconfig查询,或网络共享中ipv4找到,我的是192.168.103.53,

         再者要知道fiddler的端口号,Tools->TelerikFiddler Options->Connections,port中值就是端口号,一般默认为8888;接下来开始操作手机;

1.第一步:手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号,点击前往;见下图:

        

2.第二步:前往之后会跳转到证书下载页,见下图:

         点击FiddlerRootcertificate下载证书;

        

3.第三步:点击下载之后,安装证书并起个名字,随便写就行,点击确定;

        

4.第四步:要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可;

        

5.第五步:更改手机无线网的代理

         手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可,

6.操作手机,电脑fiddler中会显示一些http信息,成功;

三.其他

1.停止电脑对手机的网络监控

         系统设置-wifi,找到代理,去掉即可;

2.删除手机中证书                       

         安卓系统设置—安全—收信任的凭证—用户,点击证书删除即可;

3.删除手机上密码

         手机系统—安全—密码,删除系统密码即可;

———————
本文来自 趣味小白猪 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/gld824125233/article/details/52588275?utm_source=copy 

WordPress主题自动显示文章第一张图片代码

在修改主题的时候,我们可能需要WordPress自动获取文章第一张图片,在博客吧看到了相关的实现方法,记录一下,估计以后也用得到。

在当前使用的主题模板的functions.php文件<?php和?>之前添加以下代码

   function catch_that_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];
      if(empty($first_img)){ //Defines a default image
        $first_img = "/images/default.jpg";
      }
      return $first_img;
    }

在当前主题模板的index.php文件的内容代码前或后添加以下代码

<?php echo catch_that_image() ?>


<?php if( $picurl = catch_first_image() ) :  ?>
<img width="100%" height="auto" src="<?php echo $picurl; ?>" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt=""/>
<?php endif; ?>


PHP生成当前页二维码,方便手机访问。

思路:
1. 在当前页面中插入图片标签<img src=”qrcode.php”/>显示二维码
2.利用 $_SERVER[‘HTTP_REFERER’] 获取请求来源,获得当前页面url地址。
3.利用PHPqrcode.php类,生成二维码。

页面中插入img标签

<img src="qrcode.php"/>

qrcode.php代码:

<?php    

include 'phpqrcode.php';

$url_default = "http://www.lrxin.com";
$url = array_key_exists('HTTP_REFERER', $_SERVER) ?  $_SERVER['HTTP_REFERER'] : $url_default;
QRcode::png($url,false,'M',10,2);

die();

常用封装curl函数​httpGet() 、httpPost()

常用封装curl函数

阅读详细 »

PHP获取Cookie模拟登录

一、定义Cookie存储路径(必须使用绝对路径

$cookie_file = dirname(__FILE__)."/cookie.curl.txt";

阅读详细 »

PHP的curl查看header信息的功能(包括查看返回header和请求header)

1.参看返回header信息,需要设置
curl_setopt($ch, CURLOPT_HEADER, true); //返回response头部信息
在curl_exec($ch);返回接口的顶部 显示 返回header信息。

2.参看请求header信息,需要先设置
curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header

在执行curl请求(curl_exec($ch);)后,用过调用 curl_getinfo($ch, CURLINFO_HEADER_OUT); 函数返回

示例代码:

阅读详细 »

PHP实现DES加密,解决乱码

PHP要实现DES加密,大体上有2个思路。一是用扩展,一是原生PHP实现。

阅读详细 »

curl模拟浏览器,ip,来源,进行网站采集的实现方法

curl模拟浏览器,ip,来源,进行网站采集的实现方法

阅读详细 »

PHP设置页面限制ip和来源访问的方法

PHP设置页面限制ip和来源访问的方法

阅读详细 »

PHP采集器snoopy.class.php应用详解

Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。

阅读详细 »

php下载文件时修改文件名

下载地址:

/download.php?controller=down_file&file=1.zip

然后在Controller里控制输出名就可以实现

$file = './路径/1.zip';
filename = '2.zip';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-type:text/html;charset=utf-8");
header('Content-Disposition: attachment; filename='. $filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile($file);
exit;

阅读详细 »

高性能apache服务器配置MPM模块

1.
启用MPM模块配置文件

我们需要在httpd.conf文件中启用该配置文件,如下所示:

# Server-pool management (MPM specific)Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号”#”)
阅读详细 »

一个websocket的聊天室程序(php server)

通过命令行执行php文件  
如:D:\wamp\bin\php\php5.5.12\php -q D:\wamp\www\127.0.0.2\websocket\server.php 

通过本地web服务器访问 http://127.0.0.1/websocket/index.html即可

notice: 
需要php5.3或以上的执行环境,和一个web服务器如apache
浏览器需支持html5 web socket
这里监听 socket端口 9505,如遇到端口被占用可能需要在这两个文件内修改端口或者杀死相应端口进程

阅读详细 »

php 静态方法为什么不能调用this

一般方法调用,都是使用$obj->method();
这里的method方法中 $this 很明显就是 $obj
但是静态方法调用,我们一般使用 
Object::method();
没有进行实例化,所以根本没有$this对象