2017年4月

2017 年 PHP 程序员未来路在何方

PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js 、 GO 、 Python 不断地在挑战 PHP 的地位。这些技术的推动者非常热衷于唱衰 PHP , PHP 语言的未来在哪里?PHP 程序员当如何应对未来的变革?

- 阅读剩余部分 -

中国互联网有哪些黑色产业链?

近年来,随着互联网的渗透和应用的普及,网络犯罪近年来呈现持续高发的状态,成为互联网上的公害之一。网络犯罪往往是有组织、成规模的。即便是那些手法最简单、最传统的,也不是一两个人能够独立完成的,而是由10人或10人以上的有组织犯罪团伙共同完成。极端情况下,还会出现几十人、上百人参与的犯罪团伙。这些犯罪团伙分工明确,相互配合,协同作案,已经形成了一条非常完整的黑色产业链。

- 阅读剩余部分 -

织梦dedecms判断手机进行跳转

推荐:
uaredirect.js

function uaredirect(f){try{if(document.getElementById("bdmark")!=null){return}var b=false;if(arguments[1]){var e=window.location.host;var a=window.location.href;if(isSubdomain(arguments[1],e)==1){f=f+"/#m/"+a;b=true}else{if(isSubdomain(arguments[1],e)==2){f=f+"/#m/"+a;b=true}else{f=a;b=false}}}else{b=true}if(b){var c=window.location.hash;if(!c.match("fromapp")){if((navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i))){location.replace(f)}}}}catch(d){}}function isSubdomain(c,d){this.getdomain=function(f){var e=f.indexOf("://");if(e>0){var h=f.substr(e+3)}else{var h=f}var g=/^www\./;if(g.test(h)){h=h.substr(4)}return h};if(c==d){return 1}else{var c=this.getdomain(c);var b=this.getdomain(d);if(c==b){return 1}else{c=c.replace(".","\\.");var a=new RegExp("\\."+c+"$");if(b.match(a)){return 2}else{return 0}}}};

栏目页跳转:uaredirect("/m/list.php?tid={dede:field.id /}");
首页跳转:uaredirect("/m");
文章页跳转:uaredirect("/m/view.php?aid={dede:field.id /}");

index.php添加:
//判断手机登录

function ismobile() {
    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
        return true;

    //此条摘自TPM智能切换模板引擎,适合TPM开发
    if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT'])
        return true;
    //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
    if (isset ($_SERVER['HTTP_VIA']))
        //找不到为flase,否则为true
        return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
    //判断手机发送的客户端标志,兼容性有待提高
    if (isset ($_SERVER['HTTP_USER_AGENT'])) {
        $clientkeywords = array(
            'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'
        );
        //从HTTP_USER_AGENT中查找手机浏览器的关键字
        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
            return true;
        }
    }
    //协议法,因为有可能不准确,放到最后判断
    if (isset ($_SERVER['HTTP_ACCEPT'])) {
        // 如果只支持wml并且不支持html那一定是移动设备
        // 如果支持wml和html但是wml在html之前则是移动设备
        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
            return true;
        }
    }
    return false;
}

if (isMobile()){
    header('Location:m/index.php');
}else{
    //自动生成HTML版
    if(isset($_GET['upcache']) || !file_exists('index.html'))
    {
        require_once (dirname(__FILE__) . "/include/common.inc.php");
        require_once DEDEINC."/arc.partview.class.php";
        $GLOBALS['_arclistEnv'] = 'index';
        $row = $dsql->GetOne("Select * From `#@__homepageset`");
        $row['templet'] = MfTemplet($row['templet']);
        $pv = new PartView();
        $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
        $row['showmod'] = isset($row['showmod'])? $row['showmod'] : 0;
        if ($row['showmod'] == 1)
        {
            $pv->SaveToHtml(dirname(__FILE__).'/index.html');
            include(dirname(__FILE__).'/index.html');
            exit();
        } else { 
            $pv->Display();
            exit();
        }
    }
    else
    {
        header('HTTP/1.1 301 Moved Permanently');
        header('Location:index.html');
    }

}

JS跳转:

function mobileRedirect(murl){
    try {
        if(document.getElementById("bdmark") != null){
        return;
    }
            
    var urlhash = window.location.hash;
        if (!urlhash.match("fromapp")){
            if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad|Symbia)/i))) {
            location.replace(murl);
            }
        }
    } catch(err){}
}
mobileRedirect("/m/");