资讯专栏INFORMATION COLUMN

真假rewrite

ChristmasBoy / 1161人阅读

摘要:小清新,就是说的啊首先感谢社区通过我的审核,给我一个平台。风格很好,左右分工很好。以后将会在这里开博客了。

  

小清新,就是说的SegmentFault blog啊 首先感谢社区通过我的审核,给我一个平台。 风格很好,左右分工很好。 以后将会在这里开博客了。

最近接手一个项目里面也有伪静态来工作
分析其原理让我有点脑大,尤其是一开始上手的时候没有手册,没有

*关于wordpress大家都知道他的那个伪静态,这个程序的伪静态是用rewrite.php来中转的,但更明确的是,他把一个比较简单的处理弄得很复杂,而且犹豫这家伙并不擅长类处理方式,于是我在处理这个rewrite的时候很不方便,花了一天时间才将Apache php5.2.17下的路径重写搞定,中间还有很多路径规则,Apache不解析让我找不着北,但最终调好了。
他的可取之处有两点一个是使用了__rewrite方法对数据库中的路径规则进行解析,当然她在数据库中写的那个东西就不咋地了 本想截图,只能等会了,手机上不了那个网站 等有机会了吧这个截图在放上来吧 代码如下,核心就是在$_SEVER[" REQUEST_URI"]上,匹配到后就用这个赋值让浏览器识别网址为伪静态 另一个他用的经典部分就是判断好了之后就用include方法把根目录下的index.php引用进来,然后在根目录下的index.php中将class下的index.php包含进来, 在class中的index.php中通过autoload loadlib 等方法加载相关类 可以说程序逻辑没有问题,但却很明显的不系统,不条理,读懂这个程序很难 相比ThinkPHP,这套程序真是不咋地*

//include(dirname(__FILE__))
function __download($file){
    set_time_limit(0);
    if(file_exists($file)){

        $info = pathinfo($file);
        $fsize = filesize($file);
        if (isset($_SERVER["HTTP_RANGE"]) && ($_SERVER["HTTP_RANGE"] != "") && preg_match("/^bytes=([0-9]+)-$/i", $_SERVER["HTTP_RANGE"], $match) && ($match[1]  0) {
            header("HTTP/1.1 206 Partial Content");
            header("Accept-Ranges: bytes");
            header("Content-Ranges: bytes ".$start."-".($fsize - 1) . "/" . $fsize);
            header("Content-Length: ".($fsize - $start));
        } else {
            header("Accept-Ranges: bytes");
            header("Accept-Length: $fsize");
            header("Content-Length: $fsize");

        }
        header("Content-Type: application/octet-stream");
        header("Content-Disposition:attachment;filename=".$info["basename"]);
        if($f=fopen($file,"rb")){fseek($f, $start);
            while($r = fread($f, 1024)){
                echo $r;
            }
            fclose($f);
        } else echo "error";
        return true;
    } else return false;
}
function __outFile($file, $contentType){
    if ($contentType == "application/octet-stream") {
        __download($file);
    } else {
        $gmt_mtime = gmdate("D, d M Y H:i:s", filemtime($file))." GMT";
        if((isset($_SERVER["HTTP_IF_MODIFIED_SINCE"]) && array_shift(explode(";", $_SERVER["HTTP_IF_MODIFIED_SINCE"])) ==  $gmt_mtime)){
            header("HTTP/1.1 304 Not Modified");
            header("Expires: ");
            header("Cache-Control: ");
            header("Pragma: ");
            header("Content-Type: ".$contentType);
            header("Tips: Cache Not Modified");
            header("Content-Length: 0");
            return true;
        }
        header("Last-Modified:" . $gmt_mtime);
        header("Expires: ");
        header("Cache-Control: ");
        header("Pragma: ");
        header("Content-Type: ".$contentType);
        header("Tips: Normal Respond");
        //header("Content-Type: ".$imgInfo["mime"]);
        if ($f = fopen($file, "rb")) {
            while ($r = fread($f, 1024)) {
                echo $r;
            }
            fclose($f);
        }
    }
    return true;
}
function __rewrite(){
    global $r_rewrite,$r_uri,$r_d,$r_dir,$r_content_type_list;
    $matching=false;
    foreach($r_rewrite as $v){
        if(preg_match($v[0],$r_uri,$matches)){
            $r_uri=$v[1];
            $r_uri=preg_replace("/$(d+)/e","$matches[$1]",$r_uri);
            $matching=true;
            break;
        }
    }
    if($matching){
        $url_info=parse_url($r_uri);
        $r_include=str_replace("/",$r_d,$r_dir.$url_info["path"]);
        if(file_exists($r_include) && filetype($r_include)=="file"){
            if($query=$url_info["query"]){
                $sp=explode("&",$query);
                foreach($sp as $v){
                    $sp2=explode("=",$v);
                    $_GET[$sp2[0]]=addslashes(urldecode($sp2[1]));//重要
                }
                $_SERVER["QUERY_STRING"]=$query;
            }
            //if($url_info[""])
            return $r_include;
        } else return __rewrite();
    } else return false;
}
$r_marker="rewrite";
$r_marker_len=strlen($r_marker);
if($r_q=$_SERVER["QUERY_STRING"]){
    if(substr($r_q,0,$r_marker_len)===$r_marker){
        if(($r_f1=strpos($r_q,"&"))!==false){
            $r_=substr($r_q,0,$r_f1);
            if(($r_f2=strpos($r_,"="))!==false){
                $r_=substr($r_,$r_f2+1);
                $_SERVER["QUERY_STRING"]=substr($r_q,$r_f1+1);
                if(strpos($_SERVER["QUERY_STRING"],$r_marker."=")===false)
                    unset($_GET[$r_marker]);
            } else header("HTTP/1.1 404 Not Found");
        } else {
            $r_=$_GET[$r_marker];
            $_SERVER["QUERY_STRING"]="";
            $_GET=array();
        }
        /*rewrite start*/
        unset($r_marker,$r_marker_len,$r_f1,$r_f2,$r_q);//unset var
        $r_!="" && substr($r_,0,1)=="/" && $r_=substr($r_,1);
        if($r_){
            //if not null
            $r_="/".$r_;
            $r_dir=dirname(__FILE__);
            $r_d=DIRECTORY_SEPARATOR;
            //if exists out
            $r_include=str_replace("/",$r_d,$r_dir.$r_);
            $r_content_type_list=array(
                "001"=>"application/x-001",
                "301"=>"application/x-301",
                "323"=>"text/h323",
                "906"=>"application/x-906",
                "907"=>"drawing/907",
                "a11"=>"application/x-a11",
                "acp"=>"audio/x-mei-aac",
                "ai"=>"application/postscript",
                "aif"=>"audio/aiff",
                "aifc"=>"audio/aiff",
                "aiff"=>"audio/aiff",
                "anv"=>"application/x-anv",
                "asa"=>"text/asa",
                "asf"=>"video/x-ms-asf",
                "asp"=>"text/asp",
                "asx"=>"video/x-ms-asf",
                "au"=>"audio/basic",
                "avi"=>"video/avi",
                "awf"=>"application/vnd.adobe.workflow",
                "biz"=>"text/xml",
                "bmp"=>"application/x-bmp",
                "bot"=>"application/x-bot",
                "c4t"=>"application/x-c4t",
                "c90"=>"application/x-c90",
                "cal"=>"application/x-cals",
                "cat"=>"application/vnd.ms-pki.seccat",
                "cdf"=>"application/x-netcdf",
                "cdr"=>"application/x-cdr",
                "cel"=>"application/x-cel",
                "cer"=>"application/x-x509-ca-cert",
                "cg4"=>"application/x-g4",
                "cgm"=>"application/x-cgm",
                "cit"=>"application/x-cit",
                "class"=>"java/*",
                "cml"=>"text/xml",
                "cmp"=>"application/x-cmp",
                "cmx"=>"application/x-cmx",
                "cot"=>"application/x-cot",
                "crl"=>"application/pkix-crl",
                "crt"=>"application/x-x509-ca-cert",
                "csi"=>"application/x-csi",
                "css"=>"text/css",
                "cut"=>"application/x-cut",
                "dbf"=>"application/x-dbf",
                "dbm"=>"application/x-dbm",
                "dbx"=>"application/x-dbx",
                "dcd"=>"text/xml",
                "dcx"=>"application/x-dcx",
                "der"=>"application/x-x509-ca-cert",
                "dgn"=>"application/x-dgn",
                "dib"=>"application/x-dib",
                "dll"=>"application/x-msdownload",
                "doc"=>"application/msword",
                "dot"=>"application/msword",
                "drw"=>"application/x-drw",
                "dtd"=>"text/xml",
                "dwf"=>"Model/vnd.dwf",
                "dwf"=>"application/x-dwf",
                "dwg"=>"application/x-dwg",
                "dxb"=>"application/x-dxb",
                "dxf"=>"application/x-dxf",
                "edn"=>"application/vnd.adobe.edn",
                "emf"=>"application/x-emf",
                "eml"=>"message/rfc822",
                "ent"=>"text/xml",
                "epi"=>"application/x-epi",
                "eps"=>"application/x-ps",
                "eps"=>"application/postscript",
                "etd"=>"application/x-ebx",
                "exe"=>"application/x-msdownload",
                "fax"=>"image/fax",
                "fdf"=>"application/vnd.fdf",
                "fif"=>"application/fractals",
                "fo"=>"text/xml",
                "frm"=>"application/x-frm",
                "g4"=>"application/x-g4",
                "gbr"=>"application/x-gbr",
                "gif"=>"image/gif",
                "gl2"=>"application/x-gl2",
                "gp4"=>"application/x-gp4",
                "hgl"=>"application/x-hgl",
                "hmr"=>"application/x-hmr",
                "hpg"=>"application/x-hpgl",
                "hpl"=>"application/x-hpl",
                "hqx"=>"application/mac-binhex40",
                "hrf"=>"application/x-hrf",
                "hta"=>"application/hta",
                "htc"=>"text/x-component",
                "htm"=>"text/html",
                "html"=>"text/html",
                "htt"=>"text/webviewhtml",
                "htx"=>"text/html",
                "icb"=>"application/x-icb",
                "ico"=>"image/x-icon",
                "ico"=>"application/x-ico",
                "iff"=>"application/x-iff",
                "ig4"=>"application/x-g4",
                "igs"=>"application/x-igs",
                "iii"=>"application/x-iphone",
                "img"=>"application/x-img",
                "ins"=>"application/x-internet-signup",
                "isp"=>"application/x-internet-signup",
                "IVF"=>"video/x-ivf",
                "java"=>"java/*",
                "jfif"=>"image/jpeg",
                "jpe"=>"image/jpeg",
                "jpe"=>"application/x-jpe",
                "jpeg"=>"image/jpeg",
                "jpg"=>"image/jpeg",
                "jpg"=>"application/x-jpg",
                "js"=>"application/x-javascript",
                "jsp"=>"text/html",
                "la1"=>"audio/x-liquid-file",
                "lar"=>"application/x-laplayer-reg",
                "latex"=>"application/x-latex",
                "lavs"=>"audio/x-liquid-secure",
                "lbm"=>"application/x-lbm",
                "lmsff"=>"audio/x-la-lms",
                "ls"=>"application/x-javascript",
                "ltr"=>"application/x-ltr",
                "m1v"=>"video/x-mpeg",
                "m2v"=>"video/x-mpeg",
                "m3u"=>"audio/mpegurl",
                "m4e"=>"video/mpeg4",
                "mac"=>"application/x-mac",
                "man"=>"application/x-troff-man",
                "math"=>"text/xml",
                "mdb"=>"application/msaccess",
                "mdb"=>"application/x-mdb",
                "mfp"=>"application/x-shockwave-flash",
                "mht"=>"message/rfc822",
                "mhtml"=>"message/rfc822",
                "mi"=>"application/x-mi",
                "mid"=>"audio/mid",
                "midi"=>"audio/mid",
                "mil"=>"application/x-mil",
                "mml"=>"text/xml",
                "mnd"=>"audio/x-musicnet-download",
                "mns"=>"audio/x-musicnet-stream",
                "mocha"=>"application/x-javascript",
                "movie"=>"video/x-sgi-movie",
                "mp1"=>"audio/mp1",
                "mp2"=>"audio/mp2",
                "mp2v"=>"video/mpeg",
                "mp3"=>"audio/mp3",
                "mp4"=>"video/mpeg4",
                "mpa"=>"video/x-mpg",
                "mpd"=>"application/vnd.ms-project",
                "mpe"=>"video/x-mpeg",
                "mpeg"=>"video/mpg",
                "mpg"=>"video/mpg",
                "mpga"=>"audio/rn-mpeg",
                "mpp"=>"application/vnd.ms-project",
                "mps"=>"video/x-mpeg",
                "mpt"=>"application/vnd.ms-project",
                "mpv"=>"video/mpg",
                "mpv2"=>"video/mpeg",
                "mpw"=>"application/vnd.ms-project",
                "mpx"=>"application/vnd.ms-project",
                "mtx"=>"text/xml",
                "mxp"=>"application/x-mmxp",
                "net"=>"image/pnetvue",
                "nrf"=>"application/x-nrf",
                "nws"=>"message/rfc822",
                "odc"=>"text/x-ms-odc",
                "out"=>"application/x-out",
                "p10"=>"application/pkcs10",
                "p12"=>"application/x-pkcs12",
                "p7b"=>"application/x-pkcs7-certificates",
                "p7c"=>"application/pkcs7-mime",
                "p7m"=>"application/pkcs7-mime",
                "p7r"=>"application/x-pkcs7-certreqresp",
                "p7s"=>"application/pkcs7-signature",
                "pc5"=>"application/x-pc5",
                "pci"=>"application/x-pci",
                "pcl"=>"application/x-pcl",
                "pcx"=>"application/x-pcx",
                "pdf"=>"application/pdf",
                "pdf"=>"application/pdf",
                "pdx"=>"application/vnd.adobe.pdx",
                "pfx"=>"application/x-pkcs12",
                "pgl"=>"application/x-pgl",
                "pic"=>"application/x-pic",
                "pko"=>"application/vnd.ms-pki.pko",
                "pl"=>"application/x-perl",
                "plg"=>"text/html",
                "pls"=>"audio/scpls",
                "plt"=>"application/x-plt",
                "png"=>"image/png",
                "pot"=>"application/vnd.ms-powerpoint",
                "ppa"=>"application/vnd.ms-powerpoint",
                "ppm"=>"application/x-ppm",
                "pps"=>"application/vnd.ms-powerpoint",
                "ppt"=>"application/vnd.ms-powerpoint",
                "ppt"=>"application/x-ppt",
                "pr"=>"application/x-pr",
                "prf"=>"application/pics-rules",
                "prn"=>"application/x-prn",
                "prt"=>"application/x-prt",
                "ps"=>"application/x-ps",
                "ps"=>"application/postscript",
                "ptn"=>"application/x-ptn",
                "pwz"=>"application/vnd.ms-powerpoint",
                "r3t"=>"text/vnd.rn-realtext3d",
                "ra"=>"audio/vnd.rn-realaudio",
                "ram"=>"audio/x-pn-realaudio",
                "ras"=>"application/x-ras",
                "rat"=>"application/rat-file",
                "rdf"=>"text/xml",
                "rec"=>"application/vnd.rn-recording",
                "red"=>"application/x-red",
                "rgb"=>"application/x-rgb",
                "rjs"=>"application/vnd.rn-realsystem-rjs",
                "rjt"=>"application/vnd.rn-realsystem-rjt",
                "rlc"=>"application/x-rlc",
                "rle"=>"application/x-rle",
                "rm"=>"application/vnd.rn-realmedia",
                "rmf"=>"application/vnd.adobe.rmf",
                "rmi"=>"audio/mid",
                "rmj"=>"application/vnd.rn-realsystem-rmj",
                "rmm"=>"audio/x-pn-realaudio",
                "rmp"=>"application/vnd.rn-rn_music_package",
                "rms"=>"application/vnd.rn-realmedia-secure",
                "rmvb"=>"application/vnd.rn-realmedia-vbr",
                "rmx"=>"application/vnd.rn-realsystem-rmx",
                "rnx"=>"application/vnd.rn-realplayer",
                "rp"=>"image/vnd.rn-realpix",
                "rpm"=>"audio/x-pn-realaudio-plugin",
                "rsml"=>"application/vnd.rn-rsml",
                "rt"=>"text/vnd.rn-realtext",
                "rtf"=>"application/msword",
                "rtf"=>"application/x-rtf",
                "rv"=>"video/vnd.rn-realvideo",
                "sam"=>"application/x-sam",
                "sat"=>"application/x-sat",
                "sdp"=>"application/sdp",
                "sdw"=>"application/x-sdw",
                "sit"=>"application/x-stuffit",
                "slb"=>"application/x-slb",
                "sld"=>"application/x-sld",
                "slk"=>"drawing/x-slk",
                "smi"=>"application/smil",
                "smil"=>"application/smil",
                "smk"=>"application/x-smk",
                "snd"=>"audio/basic",
                "sol"=>"text/plain",
                "sor"=>"text/plain",
                "spc"=>"application/x-pkcs7-certificates",
                "spl"=>"application/futuresplash",
                "spp"=>"text/xml",
                "ssm"=>"application/streamingmedia",
                "sst"=>"application/vnd.ms-pki.certstore",
                "stl"=>"application/vnd.ms-pki.stl",
                "stm"=>"text/html",
                "sty"=>"application/x-sty",
                "svg"=>"text/xml",
                "swf"=>"application/x-shockwave-flash",
                "tdf"=>"application/x-tdf",
                "tg4"=>"application/x-tg4",
                "tga"=>"application/x-tga",
                "tif"=>"image/tiff",
                "tif"=>"application/x-tif",
                "tiff"=>"image/tiff",
                "tld"=>"text/xml",
                "top"=>"drawing/x-top",
                "torrent"=>"application/x-bittorrent",
                "tsd"=>"text/xml",
                "txt"=>"text/plain",
                "uin"=>"application/x-icq",
                "uls"=>"text/iuls",
                "vcf"=>"text/x-vcard",
                "vda"=>"application/x-vda",
                "vdx"=>"application/vnd.visio",
                "vml"=>"text/xml",
                "vpg"=>"application/x-vpeg005",
                "vsd"=>"application/vnd.visio",
                "vsd"=>"application/x-vsd",
                "vss"=>"application/vnd.visio",
                "vst"=>"application/vnd.visio",
                "vst"=>"application/x-vst",
                "vsw"=>"application/vnd.visio",
                "vsx"=>"application/vnd.visio",
                "vtx"=>"application/vnd.visio",
                "vxml"=>"text/xml",
                "wav"=>"audio/wav",
                "wax"=>"audio/x-ms-wax",
                "wb1"=>"application/x-wb1",
                "wb2"=>"application/x-wb2",
                "wb3"=>"application/x-wb3",
                "wbmp"=>"image/vnd.wap.wbmp",
                "wiz"=>"application/msword",
                "wk3"=>"application/x-wk3",
                "wk4"=>"application/x-wk4",
                "wkq"=>"application/x-wkq",
                "wks"=>"application/x-wks",
                "wm"=>"video/x-ms-wm",
                "wma"=>"audio/x-ms-wma",
                "wmd"=>"application/x-ms-wmd",
                "wmf"=>"application/x-wmf",
                "wml"=>"text/vnd.wap.wml",
                "wmv"=>"video/x-ms-wmv",
                "wmx"=>"video/x-ms-wmx",
                "wmz"=>"application/x-ms-wmz",
                "wp6"=>"application/x-wp6",
                "wpd"=>"application/x-wpd",
                "wpg"=>"application/x-wpg",
                "wpl"=>"application/vnd.ms-wpl",
                "wq1"=>"application/x-wq1",
                "wr1"=>"application/x-wr1",
                "wri"=>"application/x-wri",
                "wrk"=>"application/x-wrk",
                "ws"=>"application/x-ws",
                "ws2"=>"application/x-ws",
                "wsc"=>"text/scriptlet",
                "wsdl"=>"text/xml",
                "wvx"=>"video/x-ms-wvx",
                "xdp"=>"application/vnd.adobe.xdp",
                "xdr"=>"text/xml",
                "xfd"=>"application/vnd.adobe.xfd",
                "xfdf"=>"application/vnd.adobe.xfdf",
                "xhtml"=>"text/html",
                "xls"=>"application/vnd.ms-excel",
                "xls"=>"application/x-xls",
                "xlw"=>"application/x-xlw",
                "xml"=>"text/xml",
                "xpl"=>"audio/scpls",
                "xq"=>"text/xml",
                "xql"=>"text/xml",
                "xquery"=>"text/xml",
                "xsd"=>"text/xml",
                "xsl"=>"text/xml",
                "xslt"=>"text/xml",
                "xwd"=>"application/x-xwd",
                "x_b"=>"application/x-x_b",
                "x_t"=>"application/x-x_t",
                "*"=>"application/octet-stream"
            );
            if(file_exists($r_include)){
                if(filetype($r_include)=="file"){
                    $r_pathinfo=pathinfo($r_include);
                    $r_extension=$r_pathinfo["extension"];
                    $r_content_type="";
                    if($r_extension){
                        $r_extension=strtolower($r_extension);
                        if($r_extension=="php"){
                            $_SERVER["SCRIPT_FILENAME"]=$r_include;
                            $_SERVER["PHP_SELF"]=$r_;
                            chdir($r_pathinfo["dirname"]);
                            unset($r_,$r_dir,$r_d,$r_extension,$r_pathinfo,$r_content_type_list);
                            include($r_include);
                            exit;
                        }
                        if(!($r_content_type=$r_content_type_list[$r_extension]))$r_content_type=$r_content_type_list["*"];
                    } else $r_content_type=$r_content_type_list["*"];
                    __outFile($r_include, $r_content_type);
                    unset($r_,$r_dir,$r_d,$r_extension,$r_pathinfo,$r_content_type_list,$r_content_type,$r_include,$f,$r);
                } else {
                    //folder
                    substr($r_include,-1) != DIRECTORY_SEPARATOR && $r_include.= DIRECTORY_SEPARATOR;
                    $r_include.="index.php";
                    if(file_exists($r_include)){
                        $_SERVER["SCRIPT_FILENAME"] = $r_include;
                        unset($r_,$r_dir,$r_d,$r_content_type_list);
                        include($r_include);
                    } else header("HTTP/1.1 404 Not Found");
                }
            } else {
                //exe rewrite
                $r_rewrite_file="./cache/array/rewrite.php";
                if(file_exists($r_rewrite_file)){
                    $fp = fopen($r_rewrite_file,"rb");
                    flock($fp, LOCK_SH) ;
                    $r_rewrite=@fread($fp,filesize($r_rewrite_file));
                    flock($fp, LOCK_UN);
                    fclose($fp);
                    unset($fp);
                    $r_rewrite=unserialize(substr($r_rewrite,13));//rewrite_rule
                    //if($_SERVER["HTTP_X_REWRITE_URL"])$r_uri=$_SERVER["HTTP_X_REWRITE_URL"];
                    //else $r_uri=$r_uri.$_SERVER["REQUEST_URI"];
                    $_GET=array();
                    $r_uri=$r_.($_SERVER["QUERY_STRING"]?"?".$_SERVER["QUERY_STRING"]:"");
                    if(($r_include=__rewrite())!==false){
                        $r_pathinfo=pathinfo($r_include);
                        $r_extension=$r_pathinfo["extension"];
                        $r_content_type="";
                        if($r_extension){
                            $r_extension=strtolower($r_extension);
                            if($r_extension=="php"){
                                $_SERVER["PHP_SELF"]=$r_;
                                $_SERVER["SCRIPT_FILENAME"]=$r_include;
                                chdir($r_pathinfo["dirname"]);
                                unset($r_,$r_dir,$r_d,$r_extension,$r_pathinfo,$r_content_type_list);
                                include($r_include);
                                exit;
                            }
                            if(!($r_content_type=$r_content_type_list[$r_extension]))$r_content_type=$r_content_type_list["*"];
                        } else $r_content_type=$r_content_type_list["*"];
                        /*header("Content-Type:".$r_content_type);
                        if($f=fopen($r_include,"rb")){
                            while($r=fread($f,1024))echo $r;
                            fclose($f);
                        }*/
                        __outFile($r_include, $r_content_type);
                    } else header("HTTP/1.1 404 Not Found");
                    unset($r_,$r_dir,$r_d,$r_content_type_list,$r_rewrite_file);
                } else header("HTTP/1.1 404 Not Found");
                //
            }
        } else {
            unset($r_);
            include("./index.php");//index
        }
        /*rewrite end*/
    } else header("HTTP/1.1 404 Not Found");
}
else
    include("./index.php");

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20787.html

相关文章

  • 真假rewrite之后的怪事,找不到变量在哪里定义

    摘要:继上篇真假之后的怪事问题解决之后,我又遇到了哪些问题得到的数据,竟然没有一个地方使用,也没有定义变量。我的大脑真的有点抽,怎么回事情找不到变量定义具体是怎么回事呢我在下的中得到思路。 继上篇真假rewrite之后的怪事 rewrite问题解决之后,我又遇到了哪些问题? $_GET得到的数据,竟然没有一个地方使用,也没有定义变量。 我的大脑真的有点抽,怎么回事情?找不到变量定...

    daryl 评论0 收藏0
  • js判断json中数据的真假

    摘要:在项目开发过程中,很多时候需要处理数据,在处理的过程中,难免会对数据进行真假的判断,下面是总结的几点例子,以备使用数据真假输出假空字符串真假输出假数字真假输出真数字真假输出假非数字的数字真假输出真不在对象中第一层的属性名真假输出假不在对象中 在项目开发过程中,很多时候需要处理json数据,在处理的过程中,难免会对数据进行真假的判断,下面是总结的几点例子,以备使用 json数据 cons...

    Little_XM 评论0 收藏0
  • 从❤️庄周梦蝶❤️的寓言故事中感悟出一个科学真理:真假之间只相差一个 e^(iπ)

    昔者庄周梦为胡蝶,栩栩然胡蝶也。自喻适志与!不知周也。俄然觉,则蘧蘧然周也。不知周之梦为胡蝶与?胡蝶之梦为周与? ——典出《庄子·齐物论》 其故事大意为:庄周梦见自己变成一只蝴蝶,栩栩如生,感到十分愉快和惬意!不知道自己原本是庄周。突然间醒过来,惊惶不定之间方知原来自己是庄周。不知道是庄周梦中变成蝴蝶呢,还是蝴蝶梦见自己变成庄周呢? 庄周梦蝶是一则非常浪漫的寓言故事,它揭示了一个道理:这个纷繁...

    clasnake 评论0 收藏0
  • 对象数组的真假比较

    showImg(https://segmentfault.com/img/bVbrzOh);

    xinhaip 评论0 收藏0
  • 独立开发变现周刊(第22期):回复消息来辨别鞋子真假,年收入20万美金?

    摘要:微信推送服务手机个人通知讨论实现回复消息来辨别鞋子真假,年收入万美金我叫,简单来说,用户付费,我通过回复一些消息告诉用户购买的商品是真品还是假的,类似下面这样的,一年收入了万美金。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;co...

    YPHP 评论0 收藏0

发表评论

0条评论

ChristmasBoy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<