仓酷云

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

[学习教程] PHP编程:前一阵工夫写的一个PHP类了,不晓得有没...

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:22:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学。   <?
/***********************************************************************************/
/*/                                                                               /*/
/*/                        Program: File System Class(FSC)                        /*/
/*/                        PHP Programer :吴双(James Wu)                          /*/
/*/                        Email: wu-shuang@163.net                               /*/
/*/                        HomePage: http://www.dev-php.com                       /*/
/*/                        Date: 2002-01-24                                       /*/
/*/                                                                               /*/
/***********************************************************************************/

class FSC{

/**************************************************************************/
// 函数名: getfilesource
// 功效: 失掉指定文件的内容
// 参数: $file 方针文件
/**************************************************************************/
function getfilesource($file){
    if($fp=fopen($file,'r')){
        $filesource=fread($fp,filesize($file));
        fclose($fp);
        return $filesource;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: writefile
// 功效: 创立新文件,并写入内容,假如指定文件名已存在,那将直接掩盖
// 参数: $file -- 新文件名
// $source  文件内容
/**************************************************************************/
function writefile($file,$source){
    if($fp=fopen($file,'w')){
        $filesource=fwrite($fp,$source);
        fclose($fp);
        return $filesource;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: movefile
// 功效: 挪动文件
// 参数: $file -- 待挪动的文件名
// $destfile -- 方针文件名
// $overwrite 假如方针文件存在,是不是掩盖.默许是掩盖.
// $bak 是不是保存原文件 默许是不保存即删除原文件

/**************************************************************************/
function movefile($file,$destfile,$overwrite=1,$bak=0){
    if(file_exists($destfile)){
        if($overwrite)
            unlink($destfile);
        else
            return false;
    }
    if($cf=copy($file,$destfile)){
        if(!$bak)
            return(unlink($file));
        }
    return($cf);
}
  /**************************************************************************/
// 函数名: movedir
// 功效: 这是下一涵数move的附助函数,功效就是挪动目次
/**************************************************************************/
function movedir($dir,$destdir,$overwrite=1,$bak=0){
     @set_time_limit(600);
    if(!file_exists($destdir))
        FSC::notfate_any_mkdir($destdir);
    if(file_exists($dir)&&(is_dir($dir)))
        {
        if(substr($dir,-1)!='/')$dir.='/';
        if(file_exists($destdir)&&(is_dir($destdir))){
        if(substr($destdir,-1)!='/')$destdir.='/';
            $h=opendir($dir);
            while($file=readdir($h)){
                if($file=='.'||$file=='..')
                    {
                    continue;
                    $file="";
                }
                if(is_dir($dir.$file)){
                    if(!file_exists($destdir.$file))
                        FSC::notfate_mkdir($destdir.$file);
                    else
                        chmod($destdir.$file,0777);
                    FSC::movedir($dir.$file,$destdir.$file,$overwrite,$bak);
                    FSC::delforder($dir.$file);
                    }
                else
                {
                    if(file_exists($destdir.$file)){
                        if($overwrite)unlink($destdir.$file);
                        else{
                            continue;
                            $file="";
                            }
                    }
                    if(copy($dir.$file,$destdir.$file))
                        if(!$bak)
                            if(file_exists($dir.$file)&&is_file($dir.$file))
                                @unlink($dir.$file);
                }
            }
        }
        else
            return false;
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: move
// 功效: 挪动文件或目次
// 参数: $file -- 源文件/目次
//       $path -- 方针途径
//       $overwrite -- 如是方针途径中已存在该文件时,是不是掩盖挪动
//                  --  默许值是1, 即掩盖
//       $bak  -- 是不是保存备份(原文件/目次)
/**************************************************************************/
function move($file,$path,$overwrite=1,$bak=0)
     {
    if(file_exists($file)){
        if(is_dir($file)){
            if(substr($file,-1)=='/')$dirname=basename(substr($file,0,strlen($file)-1));
            else $dirname=basename($file);
            if(substr($path,-1)!='/')$path.='/';
            if($file!='.'||$file!='..'||$file!='../'||$file!='./')$path.=$dirname;
            FSC::movedir($file,$path,$overwrite,$bak);
            if(!$bak)FSC::delforder($file);
            }
        else{
            if(file_exists($path)){
                if(is_dir($path))chmod($path,0777);
                else {
                    if($overwrite)
                        @unlink($path);
                    else
                        return false;
                }
            }
            else
                FSC::notfate_any_mkdir($path);
            if(substr($path,-1)!='/')$path.='/';
            FSC::movefile($file,$path.basename($file),$overwrite,$bak);
        }
    }
    else
        return false;
}
/**************************************************************************/
// 函数名: delforder
// 功效: 删除目次,不论该目次下是不是有文件或子目次,全体删除哦,当心别删错了哦!
// 参数: $file -- 源文件/目次

/**************************************************************************/
function delforder($file) {
     chmod($file,0777);
     if (is_dir($file)) {
          $handle = opendir($file);
          while($filename = readdir($handle)) {
           if ($filename != "." && $filename != "..")
            {
                FSC::delforder($file."/".$filename);
            }
          }
          closedir($handle);
          return(rmdir($file));
     }
     else {
        unlink($file);
      }
}
/**************************************************************************/
// 函数名: notfate_mkdir
// 功效: 创立新目次,这是来自php.net的一段代码.填补mkdir的缺乏.
// 参数: $dir -- 目次名

/**************************************************************************/
function notfate_mkdir($dir,$mode=0777){
    $u=umask(0);
    $r=mkdir($dir,$mode);
    umask($u);
    return $r;
}
/**************************************************************************/
// 函数名: notfate_any_mkdir
// 功效: 创立新目次,与下面的notfate_mkdir有点分歧,由于它多了一个any,便可以创立多级目次
//         如:notfate_any_mkdir("abc/abc/abc/abc/abc")
// 参数: $dirs -- 目次名

/**************************************************************************/
function notfate_any_mkdir($dirs,$mode=0777)
{
  if(!strrpos($dirs,'/'))
    {
      return(FSC::notfate_mkdir($dirs,$mode));
  }else
      {
      $forder=explode('/',$dirs);
      $f='';
      for($n=0;$n<count($forder);$n++)
          {
          if($forder[$n]=='') continue;
          $f.=((($n==0)&&($forder[$n]<>''))?(''):('/')).$forder[$n];
          if(file_exists($f)){
              chmod($f,0777);
              continue;
              }
          else
              {
              if(FSC::notfate_mkdir($f,$mode)) continue;
              else
                  return false;
          }
        }
        return true;
      }
}

/*********************************************************************************/
/*/                            End Class FSC                                   /*/
/*********************************************************************************/
}
?>  PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。
老尸 该用户已被删除
沙发
发表于 2015-2-4 12:47:17 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
深爱那片海 该用户已被删除
板凳
发表于 2015-2-9 22:40:03 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
admin 该用户已被删除
地板
发表于 2015-2-25 00:24:00 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
5#
发表于 2015-3-6 19:49:37 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-11 03:44:07 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-13 01:07:15 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
飘灵儿 该用户已被删除
8#
发表于 2015-3-14 19:42:50 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
透明 该用户已被删除
9#
发表于 2015-3-17 09:09:19 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
小妖女 该用户已被删除
10#
发表于 2015-3-24 04:47:25 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
若相依 该用户已被删除
11#
发表于 2015-4-4 17:26:14 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
蒙在股里 该用户已被删除
12#
发表于 2015-4-12 02:00:38 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
若天明 该用户已被删除
13#
发表于 2015-4-23 16:59:13 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
小女巫 该用户已被删除
14#
发表于 2015-6-9 06:04:06 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
只想知道 该用户已被删除
15#
发表于 2015-6-25 15:34:44 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
柔情似水 该用户已被删除
16#
发表于 2015-6-25 20:51:37 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
变相怪杰 该用户已被删除
17#
发表于 2015-6-30 21:35:04 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
精灵巫婆 该用户已被删除
18#
发表于 2015-7-1 20:53:44 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
再见西城 该用户已被删除
19#
发表于 2015-7-3 13:59:03 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
活着的死人 该用户已被删除
20#
发表于 2015-7-9 06:41:16 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-29 10:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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