仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1015|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之php静态Include文件 (Dynamic File Inc...

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。静态|源代码|include   信任良多ASP开辟者城市埋怨ASP的Include体例太老土了,以的体例加载文件其实是太不恬逸了,在实践项目中不论我是否是一入手下手就要用到这个文件,我总得早早的把它Include出去...这方面PHP就恬逸良多...甚么时分用,甚么时分In...

早在03年就在蓝色幻想上看到过静态Include的文章,事先已感觉很凶猛,但实践使用了一下,不便利并且Include的后果欠好.

后来又在一网站上看到了改善版的,然而也不太好用~~~

哎,事先我真是感觉有点想保持ASP了,然而因为公司仍是用ASP来开辟,我也是没有举措...

明天,我必定要记住明天~~~在国外的一个网站上我居然发明了如许一个好东东,太棒了~~~Great works!!!

之前试的一些静态Include代码,都没法Include一个类,乃至函数~~~又或Include文件中的Include没法被包括...

如今这个鬼佬(dselkirk)写的类可觉得咱们做到这些了~~~ 复制内容到剪贴板 代码:
<%  
  public include, include_vars  
  set include = new cls_include  

  class cls_include  

    private sub class_initialize()  
      set include_vars = server.createobject("scripting.dictionary")  
    end sub  
    private sub class_deactivate()  
      arr_variables.removeall  
      set include_vars = nothing  
      set include = nothing  
    end sub  

    public default function include(byval str_path)  
      dim str_source  
      if str_path <> "" then  
        str_source = readfile(str_path)  
        if str_source <> "" then  
          processincludes str_source  
          convert2code str_source  
          formatcode str_source  
          if str_source <> "" then  
            if request.querystring("debug") = 1 then  
              response.write str_source  
              response.end  
            else  
              executeglobal str_source  
              include_vars.removeall  
            end if  
          end if  
        end if  
      end if  
    end function  

    private sub convert2code(str_source)  
      dim i, str_temp, arr_temp, int_len  
      if str_source <> "" then  
        if instr(str_source,"%" & ">") > instr(str_source,"<" & "%") then  
          str_temp = replace(str_source,"<" & "%","|%")  
          str_temp = replace(str_temp,"%" & ">","|")  
          if left(str_temp,1) = "|" then str_temp = right(str_temp,len(str_temp) - 1)  
          if right(str_temp,1) = "|" then str_temp = left(str_temp,len(str_temp) - 1)  
          arr_temp = split(str_temp,"|")  
          int_len = ubound(arr_temp)  
          if (int_len + 1) > 0 then  
            for i = 0 to int_len  
              str_temp = trim(arr_temp(i))  
              str_temp = replace(str_temp,vbcrlf & vbcrlf,vbcrlf)  
              if left(str_temp,2) = vbcrlf then str_temp = right(str_temp,len(str_temp) - 2)  
              if right(str_temp,2) = vbcrlf then str_temp = left(str_temp,len(str_temp) - 2)  
              if left(str_temp,1) = "%" then  
                str_temp = right(str_temp,len(str_temp) - 1)  
                if left(str_temp,1) = "=" then  
                  str_temp = right(str_temp,len(str_temp) - 1)  
                  str_temp = "response.write " & str_temp  
                end if  
              else  
                if str_temp <> "" then  
                  include_vars.add i, str_temp  
                  str_temp = "response.write include_vars.item(" & i & ")"   
                end if  
              end if  
              str_temp = replace(str_temp,chr(34) & chr(34) & " & ","")  
              str_temp = replace(str_temp," & " & chr(34) & chr(34),"")  
              if right(str_temp,2) <> vbcrlf then str_temp = str_temp  
              arr_temp(i) = str_temp  
            next  
            str_source = join(arr_temp,vbcrlf)  
          end if  
        else  
          if str_source <> "" then  
            include_vars.add "var", str_source  
            str_source = "response.write include_vars.item(""var"")"  
          end if  
        end if  
      end if  
    end sub  

    private sub processincludes(str_source)  
      dim int_start, str_path, str_mid, str_temp  
      str_source = replace(str_source,"<!-- #","<!--#")  
      int_start = instr(str_source,"<!--#include")  
      str_mid = lcase(getbetween(str_source,"<!--#include","-->"))  
      do until int_start = 0  
        str_mid = lcase(getbetween(str_source,"<!--","-->"))  
        int_start = instr(str_mid,"#include")  
        if int_start >  0 then  
          str_temp = lcase(getbetween(str_mid,chr(34),chr(34)))  
          str_temp = trim(str_temp)  
          str_path = readfile(str_temp)  
          str_source = replace(str_source,"<!--" & str_mid & "-->",str_path & vbcrlf)  
        end if  
        int_start = instr(str_source,"#include")  
      loop  
    end sub  

    private sub formatcode(str_code)  
      dim i, arr_temp, int_len  
      str_code = replace(str_code,vbcrlf & vbcrlf,vbcrlf)  
      if left(str_code,2) = vbcrlf then str_code = right(str_code,len(str_code) - 2)  
      str_code = trim(str_code)  
      if instr(str_code,vbcrlf) > 0 then  
        arr_temp = split(str_code,vbcrlf)  
        for i = 0 to ubound(arr_temp)  
          arr_temp(i) = ltrim(arr_temp(i))  
          if arr_temp(i) <> "" then arr_temp(i) = arr_temp(i) & vbcrlf  
        next  
        str_code = join(arr_temp,"")  
        arr_temp = vbnull  
      end if  
    end sub  

    private function readfile(str_path)  
      dim objfso, objfile  
      if str_path <> "" then  
        if instr(str_path,":") = 0 then str_path = server.mappath(str_path)  
        set objfso = server.createobject("scripting.filesystemobject")  
        if objfso.fileexists(str_path) then  
          set objfile = objfso.opentextfile(str_path, 1, false)  
          if err.number = 0 then  
            readfile = objfile.readall  
            objfile.close  
          end if  
          set objfile = nothing  
        end if  
        set objfso = nothing  
      end if  
    end function  

    private function getbetween(strdata, strstart, strend)  
      dim lngstart, lngend  
      lngstart = instr(strdata, strstart) + len(strstart)  
      if (lngstart <> 0) then  
        lngend = instr(lngstart, strdata, strend)  
        if (lngend <> 0) then  
          getbetween = mid(strdata, lngstart, lngend - lngstart)  
        end if  
      end if  
    end function  

  end class  
%>


建议大家买一本书,而不光是在网上看一些零碎的资料,一本书毕竟会讲的系统一些,全面一些,而且印刷的书不受电脑的限制,但是建议在看书的时候最好旁边有电脑,这样可以很及时地上机实践。
深爱那片海 该用户已被删除
沙发
发表于 2015-2-4 10:09:12 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
只想知道 该用户已被删除
板凳
发表于 2015-2-6 02:22:29 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
飘灵儿 该用户已被删除
地板
发表于 2015-3-2 15:10:31 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
莫相离 该用户已被删除
5#
发表于 2015-3-11 04:06:46 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
再见西城 该用户已被删除
6#
发表于 2015-3-11 17:07:20 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
不帅 该用户已被删除
7#
发表于 2015-3-19 02:29:55 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
蒙在股里 该用户已被删除
8#
发表于 2015-3-25 02:50:20 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
因胸联盟 该用户已被删除
9#
发表于 2015-3-25 22:39:50 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
若天明 该用户已被删除
10#
发表于 2015-3-27 01:10:27 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
金色的骷髅 该用户已被删除
11#
 楼主| 发表于 2015-4-4 11:59:38 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
飘飘悠悠 该用户已被删除
12#
发表于 2015-4-4 19:24:26 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
山那边是海 该用户已被删除
13#
发表于 2015-4-8 03:22:08 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
简单生活 该用户已被删除
14#
发表于 2015-4-16 23:11:35 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
小女巫 该用户已被删除
15#
发表于 2015-4-18 02:17:42 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
冷月葬花魂 该用户已被删除
16#
发表于 2015-4-26 02:10:12 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
谁可相欹 该用户已被删除
17#
发表于 2015-6-8 22:50:36 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
爱飞 该用户已被删除
18#
发表于 2015-6-11 01:50:10 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
若相依 该用户已被删除
19#
发表于 2015-6-29 08:01:06 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
灵魂腐蚀 该用户已被删除
20#
发表于 2015-7-4 01:00:19 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-30 16:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表