分类: PHP

  • php怎么处理​高并发网站?

    1,Webserver (Nginx) :这一层采用分布式部署,结合智能DNS解析可以简易地防止单点故障、实现区域访问加速,结合LVS很容易实现负载均衡。这一层主要是负责处理静态请求和转发PHP请求至第二层的PHP处理节点,对于静态资源地址可以单独拿出来部署,或者直接使用商用的云存储服务(国内七牛,又拍云,国外有Amazon S3)

    (更多…)

  • PHP获取远程图片


    $path = ‘upload/pic.jpg’;  //写入路径、文件
    $path_tmp = $path.”_tmp”; //临时写入路径、文件
            //写入路径权限设置

            $realdir = ”;
                    $file_dir = explode(‘/’,$path);
                    array_pop($file_dir); //取得路径
                    foreach ($file_dir as $dir) {
                        if ( $dir == ” )
                          continue;
                       $realdir .= ‘/’ . $dir;
                        if ( ! is_dir($realdir) ) {
                            if ( ! mkdir($realdir) ) {
                            return ”;
                            }else{
                                chmod 777 $realdir;
                            }
                        }
                    }
                     //获取图片到临时路径、文件
                    $cmd = wget -q -x -t3 -T5 -O $path_tmp $url;
                  if(is_file($path_tmp)){
                        if(filesize($path_tmp) > 10){//10 byte
                            mv $path_tmp $path;
                            chmod 777 $path;
                        }else{
                            rm $path_tmp;
                        }
                    }

  • php中如何通过get方法传递带空格的字符串

    $sousuo = urlencode($input);
    echo “<a href=$PHP_SELF?input=$input>”;

    用urldecode转回来
    $input = urldecode($input);
    echo $sousuo;

    上边$input是带空格的字符串,使用urlencode()这样空格会在传递的时候转成’20%‘,在接收的时候一般会自动转成空格。
  • php中使用jsonp跨域传递内容

    我们现在www.test.com这个域名下面有这么个html文件testjsonp.html:
    <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
     <html xmlns=”http://www.w3.org/1999/xhtml” >
     <head>
         <title>Untitled Page</title>
          <script type=”text/javascript” src=”jquery-1.7.2.min.js”></script>
          <script type=”text/javascript”>
         jQuery(document).ready(function(){
            $.ajax({
                 type: “GET”,
                 async: false,
                 url: “http://test/jsonp.php”,
                 dataType: “jsonp”,
                 jsonp: “callback”,//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
                 jsonpCallback:”flightHandler”,//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写”?”,jQuery会自动为你处理数据
                 success: function(json){
                     alert(‘您查询到航班信息:票价: ‘ + json.price + ‘ 元,余票: ‘ + json.tickets + ‘ 张。回调函数名为: ‘+json.func);
                 },
                 error: function(){
                     alert(“fail”);
                 }
             });
         });
         </script>
         </head>
      <body>
      </body>
     </html>
    注意,要真正运行上面的代码可能需要jquery的文件,你可以将<script type=”text/javascript” src=”jquery-1.7.2.min.js”></script>改为你目录中jquery的文件路径:
    如:<script type=”text/javascript” src=”js/jquery.js”></script>
    然后,你可以再找个另外一个域名的web目录,将文件jsonp.php:
    <?php
    $callback = $_GET[“callback”];
    $a = array(
        ‘code’=>’CA1998’,
        ‘price’=>’6000’,
        ‘tickets’=>20,
        ‘func’=>$callback,
    );
    $result = json_encode($a);
    echo “flightHandler($result)”;
    exit;
    放到这个目录下面去。这样就可以测试了。
    直接在浏览器访问testjsonp.html.就可以看到效果了。
  • 比RBAC更好的权限认证方式(Auth类认证)

    Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 。
    RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了,比如页面上面的操作按钮, 我想判断用户权限来显示这个按钮, 如果没有权限就不会显示这个按钮; 再比如我想按积分进行权限认证, 积分在0-100时能干什么, 在101-200时能干什么。 这些权限认证用RABC都很困难。
    下面介绍 Auth权限认证, 它几乎是全能的, 除了能进行节点认证, 上面说的RABC很难认证的两种情况,它都能实现。  (更多…)
  • 截取内容200字符至摘要

            $str = strip_tags($_POST[‘content’]);去掉HTML标签
            $str = mb_substr($str,0,200,’utf-8′);//中文字符截取,防止乱码
            $str = $str.’…’;
  • PHP中使用curl方式抓取网页代码

    PHP抓取页面的主要方法: 1. file()函数 
    2. file_get_contents()函数 
    3. fopen()->fread()->fclose()模式 
    4.curl方式 
    5. fsockopen()函数 socket模式 
    6. 使用插件(如:http://sourceforge.net/projects/snoopy/) 

    (更多…)

  • php流程控制替代语法

    好吧 ……确实是菜到不能再菜了,第一次看到这种语法……还是请教群里热情的人解决问题……o(︶︿︶)o 至少又学到了一点东西。
    替代语法规则:
    PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;

    (更多…)

  • php中heredoc的使用方法

    echo <<<STR
    echo(‘something’);
    STR;
    这里的<<<STR和STR;是什么意思呢?

    1.以<<<End开始标记开始,以End;结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可

    (更多…)

  • 正则表达式30分钟入门教程

    版本:v2.33 (2013-1-10) 作者:deerchao 转载

    本文目标

    30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 (更多…)