当前位置:  编程技术>php
本页文章导读:
    ▪教您在windows下安装phpredis模块      教您在windows下安装phpredis模块,感兴趣的朋友可以参考学习。 1.下载: php_redis.dll:https://github.com/nicolasff/phpredis/downloads  2.里面有两个模块分别是vc6,vc9编译的,我们需要知道我们的Php是vc6还是.........
    ▪php实现模拟get和post请求的代码      这里介绍的是一个模拟get或者post请求的方法支持的代码,支持自定义header和测试CDN节点。 1.get,post方法 2.自定义参数 3.自定义header 4.返回服务器的返回内容和header 5.支持相特定的服务器请.........
    ▪用php实现把txt文件转为htm的代码          txt文件阅读不是很方便,对于超长的行,还得自动换行,行与行之间间隔太小,背景为白色。     本文介绍的程序能够批量把指定目录下的txt转化为htm文件,htm文件用浏览器打开后,根.........

[1]教您在windows下安装phpredis模块
    来源: 互联网  发布时间: 2013-12-24

教您在windows下安装phpredis模块,感兴趣的朋友可以参考学习。

1.下载:
php_redis.dll:https://github.com/nicolasff/phpredis/downloads 

2.里面有两个模块分别是vc6,vc9编译的,我们需要知道我们的Php是vc6还是vc9的:
创建一个文件:reids.php
 

代码如下:
<?php
    phpinfo();
?>



3.安装模块
把php_redis.dll模块放到php安装目录下/ext/中
在php.ini里的
;extension=php_bz2.dll 之前增加 extension=php_redis.dll

4.测试
重启apache之后,访问redis.php
redis.php代码:
 

代码如下:
<?php
    phpinfo();
    $redis = new Redis();
    $redis->connect("192.168.60.6","6379");
    $redis->set("test","Hello World");
    echo $redis->get("test");
?>

测试结果


    
[2]php实现模拟get和post请求的代码
    来源: 互联网  发布时间: 2013-12-24

这里介绍的是一个模拟get或者post请求的方法支持的代码,支持自定义header和测试CDN节点。
1.get,post方法
2.自定义参数
3.自定义header
4.返回服务器的返回内容和header
5.支持相特定的服务器请求url,适合测试cdn节点
 

代码如下:

<?php
    error_reporting(0);
    $user_agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10)";

    list($rheaders,$conntent)=request_url("60.28.14.148","80","get","http://mat1.gtimg.com/www/iskin960/qqcomlogo.png",array("User-Agent"=> $user_agent),array());

    //list($rheaders,$conntent)=request_url("","","get","http://www.baidu.com/s",array("User-Agent"=>$user_agent),array("wd"=>"test"));
    if($rheaders["httpstatus"]>=200&&$rheaders["httpstatus"]<=300)
    {
      //根据返回的类型,修改header
      if($rheaders['Content-Type']!="")
        header('Content-Type: '.$rheaders['Content-Type']);
        echo     $conntent;
    //    foreach($rheaders as $k => $v)echo "$k: $v<br/>";
    }else
    {
        //若是是302,301之类跳转的话,继续取跳转的
        if($rheaders["httpstatus"]>=300&&$rheaders["httpstatus"]<=400){
                list($rheaders,$conntent)=request_url("","","get",$rheaders["Location"],array("User-Agent"=> $user_agent),array());       
                if($rheaders["httpstatus"]>=200&&$rheaders["httpstatus"]<=300)
                {
                 //根据返回的类型,修改header
                 if($rheaders['Content-Type'])
                        header('Content-Type: '.$rheaders['Content-Type']);
                    echo     $conntent;
                }
        }
        //    foreach($rheaders as $k => $v)echo "$k: $v<br/>";
    }
    /*
     * 模拟get,post方法向服务器请求某url的内容,返回内容和状态码
     * 参数: $ip:url所在的服务器ip或者域名,当传入为空时,ip的默认值就是$aURL里包含host(ip或者域名)
             $port:int,url所在的服务器的端口,当传入为空时,ip的默认值就是$aURL里包含端口,若是没有的话为80
             $method:get还是post,缺省为post
             $aURL:请求的url,格式为http://username:password@hostname:port/path?arg=value#anchor
             $headers:数组,需要模拟的http头部(Referer,Content-Disposition,Expires,Cookie,Pragma,User-Agent,Accept-Language等等)
                           $headers=array("Referer"=>"http://123.com","User-Agent"=>"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10)");
             $aParamsArray:数组,需要post或者get的参数
                           $aParamsArray=array("id"=>123,"name"=>"abc");
     * 返回值:数组:第一个元素为返回的http头部数组(http状态(默认为0,连接错误为-1)),第二个为返回的内容
            
    */
    function request_url(/blog_article/$ip,$port,$method,$aURL,$headers,$aParamsArray/index.html)
    {
        $rheaders=array();
         $rheaders["httpstatus"]=0;
        //分解URL为host,端口,和路径
        $URL=parse_url(/blog_article/$aURL/index.html);
        if(!$port)
        {
            //缺省端口为80
            $port=($URL["port"]? $URL["port"]:80);   
        }
        if(strcasecmp($method,"get")==0){
            $method="GET";
        }else{
            $method="POST";
        }
        //把post的数据放到数据段里
        foreach($aParamsArray as $key=> $value)
        {
         if($flag!=0)
         {
         $params.="&";
         $flag=1;
         }
         $params.=$key."=";
         $params.=urlencode($value);
         $flag=1;
        }
            if($method=="POST")
            {
         //获得数据段长度,放入Content-Length
         $length=strlen($params);

             }else
             {
              $length=0;
              //把数据放到url的参数后面
              $URL["query"]=$URL["query"]."&".$params;
             }
             if($URL["query"]){
                 //添加参数
                 $URL["path"].="?".$URL["query"].($URL["fragment"]?"#".$URL["fragment"]:"");
             }
         //创建socket连接
         $fp=fsockopen($ip==""? $URL["host"]:$ip,$port,$errno,$errstr,10);
         if(!$fp)
         {
              $rheaders["httpstatus"]=-1;
                 return array($rheaders,$errstr."--->".$errno);
         }
         //去掉不多余的头部
         unset($headers['Host']);
         unset($headers['Content-Length']);
         unset($headers['Content-Type']);
         //构造post请求的头
         $header="$method ".$URL["path"]." HTTP/1.1\r\n";
         $header.="Host:".$URL["host"]."\r\n";
         foreach($headers as $k=> $v){
             $header.="$k:$v\r\n";
         }
         if(!$header["Content-Type"]){
         $header.="Content-Type:application/x-www-form-urlencoded\r\n";
              }
         $header.="Content-Length:".$length."\r\n";
         $header.="Connection:Close\r\n\r\n";
         if($method=="POST")
             {
             //添加post的字符串
             $header.=$params."\r\n";
         }
    //     echo $header;
         //发送post的数据
         fputs($fp,$header);
         $inheader=1;
         $lineno=0;
         $conntent="";

         while(!feof($fp))
         {
              if($inheader){
             $line=fgets($fp,1024);//读取header
             }else{
                 if($rheaders["Content-Length"]>=0){
                     $line=fread($fp,$rheaders["Content-Length"]);//读取返回内容
                 }else{
                     $line=fread($fp,1024);//读取返回内容   
                 }
             }
         $lineno++;
         if($inheader){
             if($lineno==1)
             {
                     //从第一行,获取返回的状态码
                     if(preg_match("/^HTTP\/1\.[1|0] (\d{3})/i",$line,$match)){
                         $rheaders["httpstatus"]=$match[1];
                     }
             }
         //解析http头部,把所有字段
             if(preg_match("/^(.*): (.*)$/i",$line,$matches)){
                            $rheaders[$matches[1]]=$matches[2];
             }
         }
         if($inheader&&($line=="\n"||$line=="\r\n")){
         $inheader=0;
         continue;
         }
         if($inheader==0)
         {
             //获得返回内容
         $conntent.=$line;
         }
         }
        fclose($fp);
        return array($rheaders,$conntent);
    }
?>
 

附:源码下载(get_post.php) (右键->目标另存为)

    
[3]用php实现把txt文件转为htm的代码
    来源: 互联网  发布时间: 2013-12-24

    txt文件阅读不是很方便,对于超长的行,还得自动换行,行与行之间间隔太小,背景为白色。
    本文介绍的程序能够批量把指定目录下的txt转化为htm文件,htm文件用浏览器打开后,根据txt文件的换行一样,且能够自动换行,字号为16px,行高为22px,背景色为淡蓝。
    感兴趣的朋友,可以参考下。
 

代码如下:

    <?php
    /*
        批量把某目录下的所有.txt文件转化为对应的htm文件,该htm文件包含有方便阅读的css样式
        生成的htm文件放在同一目录下htm目录下
        参数1:要转化的目录的路径
        执行 php txt2htm.php "C:\\txt\\"
         php txt2htm.php "/tmp/txt/"
         php txt2htm.php .
    */

    $basedir=$argv[1];
    if(!$basedir||!is_dir($basedir))
    {
        die("please input dir.\n");
    }
    //改变工作目录

    chdir($basedir);

    $d = dir(".");
    //创建输出目录

    $outputdir="./htm/";
    if(!is_dir($outputdir)){
        mkdir($outputdir, 0700);
    }
    //判断是否创建成功

    if(!is_dir($outputdir))
    {
        die("cannot mkdir.\n");   
    }
    while (false !== ($entry = $d->read()))
    {
        //判断是不是文件

        if(is_file($entry))
        {
            $filename=strtolower()($entry);
                //判断是不是txt文件

            if(stristr($filename,".txt"))
            {
                $wfile=$outputdir.basename($filename,".txt").".htm";
                //若是文件已经存在,则跳过

                if(file_exists($wfile))
                {
                        echo "**********".$wfile." is exists ,skip this file**************\n";
                        continue;   
                }   
                if($str=file_get_contents($entry))
                {
                    //写入样式,和换行

                    $str="<body >".str_replace()("\n","\n<br>",$str);
                    if($fp=fopen($wfile,"w"))
                    {
                         if (fwrite($fp,$str) === FALSE) {
                              //写入失败

                     echo $wfile." cover fail! fwrite fail\n";   
                        }else{
                                echo $wfile." cover success!\n";   
                        }
                        fclose($fp);
                    }else{
                        //创建文件失败

                        echo $wfile." cover fail! fopen fail\n";
                    }
                }else{
                    //读取失败

                    echo $wfile." cover fail! file_get_contents fail\n";   
                }   
            }
      }
    }
    $d->close();
    ?>

运行:

效果:


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3