H5学习_番外篇_PHP数据库操作

1. 文件操作

1.1 打开关闭文件

  1. fopen()

    resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )?

    fopen()函数将resource绑定到一个流或句柄。绑定之后。脚本就能够通过句柄与此资源交互;

    例1:以仅仅读方式打开一个位于本地server的文本文件

    $fh = fopen("test.txt", "r");

    例2:以仅仅读方式打开一个远程文件

    $fh = fopen("http://www.baidu.com", "r");

  2. fclose()

    bool fclose ( resource handle )

    将 handle 指向的文件关闭 。假设成功则返回 TRUE。失败则返回 FALSE;

    文件指针必须有效,而且是通过 fopen() 或 fsockopen() 成功打开的;

    尽管每一个请求最后都会自己主动关闭文件。但明白的关闭打开的全部文件是一个好的习惯;

    例:

    $fh = fopen("test.txt", "r");
    fclose($fh);

1.2 读取文件

php 提供了非常多从文件里读取数据的方法,不仅能够一次仅仅读取一个字符。还能够一次读取整个文件。

  1. fread()

    string fread ( int handle, int length )?

    fread()函数从handle指定的资源中读取length个字符,

    当到达EOF或读取到length个字符时读取将停止。

    假设要读取整个文件,使用filesize()函数确定应该读取的字符数;

    例:

    $file = "test.txt";
    $fh = fopen( $file, "r");
    $str = fread($fh, filesize($file));
    echo $str;
    fclose($fh);
  2. fgets()

    string fgets ( int handle [, int length] )?

    fgets()函数从handle指定的资源中读取一行字符。碰到换行符(包含在返回值中)、

    EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况);

    例:

    逐行读取文件

    $handle = fopen("data.txt", "r");
    while(!feof($handle)){
        $content = fgets($handle);
        $content= iconv(‘gbk‘,‘utf-8‘,$content);
        echo $content."<br />”;
    }
    fclose($handle);

    注意:假设没有指定 length。则默觉得 1K,或者说 1024 字节。

  3. file()

    array file ( string $filename [, int $flags = 0 [, resource $context ]])

    file()函数将文件读取到数组中。各元素由换行符分隔。

    例:

    $arr = file("test.txt");
    print_r($arr);
  4. file_get_contents()

    string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

    file_get_contents()函数将文件内容读到字符串中;

    例:

    $str = file_get_contents("test.txt");
    echo $str;

1.3 写入文件

  1. fwrite()

    int fwrite ( resource handle, string string [, int length] )

    fwrite()函数将string的内容写入到由handle指定的资源中。

    假设指定length參数。将在写入Length个字符时停止。

    例:

    $str = "test text";
    $fh = fopen("test.txt", "a");
    fwrite($fh, $str);
    fclose($fh);
  2. file_put_contents()

    int file_put_contents ( string filename, string data [, int flags [, resource context]] )

    file_put_contents()函数将一个字符串写入文件。与依次调用fopen(),fwrite(),fclose()功能一样;

    例:

    $str = "hello";
    file_put_contents("test.txt", $str);

1.4 复制,重命名,删除文件

  1. copy()

    bool copy ( string source, string dest )

    将文件从 source 复制到 dest。假设成功则返回 TRUE,失败则返回 FALSE。

    例:Copy("test.txt", "test.txt.bak");

  2. rename()

    bool rename ( string oldname, string newname [, resource context] )

    尝试把 oldname 重命名为 newname。 假设成 功则返回 TRUE,失败则返回 FALSE。

    例:rename("test.txt", “test2.txt”);

  3. unlink()

    bool unlink ( string filename )

    删除文件,假设删除成功返回true, 否则返回false;

    例1:

    删除一个文本文件
    unlink(“test.txt")。

1.5 读取文件夹

  1. copy()

    bool copy ( string source, string dest )

    将文件从 source 复制到 dest。

    假设成功则返回 TRUE,失败则返回 FALSE。

    例:Copy("test.txt", "test.txt.bak");

  2. rename()

    bool rename ( string oldname, string newname [, resource context] )

    尝试把 oldname 重命名为 newname。 假设成功则返回 TRUE,失败则返回 FALSE。

    例:rename("test.txt", “test2.txt”);

  3. unlink()

    bool unlink ( string filename )

    删除文件。假设删除成功返回true, 否则返回false;

    例1:

    删除一个文本文件
    unlink(“test.txt")。     
  4. scandir()

    array scandir ( string directory [, int sorting_order [, resource context]] )

    返回一个包含有 directory 中的文件和文件夹的数组;

  5. rmdir()

    bool rmdir ( string dirname )

    删除文件夹

  6. mkdir()

    bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

    ?尝试新建一个由 pathname 指定的文件夹。

1.6 其它文件操作函数

  1. filesize()

    int filesize ( string filename )

    取得文件的大小,以字节为单位

  2. filectime()

    int filectime ( string filename )

    取得文件的创建时间,以unix时间戳方式返回

    例:

    $t = filectime("test.txt");
    echo date("Y-m-d H:i:s", $t);
  3. fileatime() 返回文件的最后改变时间;
  4. filemtime() 返回文件的最后改动时间;

    注:”最后改变时间”不同于 “最后改动时间”。

    最后改变时间指的是对文件inode数据的不论什么改变。包含改变权限。所属组。拥有者等; 而最后改动时间指的是对文件内容的改动

  5. file_exists() 检查文件或文件夹是否存在,假设存在返回true, 否则返回false;
  6. is_readable() 推断文件是否可读,假设文件存在而且可读,则返回true;
  7. is_writable() 推断文件是否可写。假设文件存在而且可写,则返回true;

1.7 解析文件夹路径函数

  1. basename()

    string basename ( string path [, string suffix] )

    返回路径中的文件名称部份,当指定了可选參数suffix会将这部分内容去掉;

    例:

    
    

2. 课上练习代码

<?

php

        //打开文件
        $rh = fopen(‘PHP_3.txt‘, ‘r+‘);

        //读取文件,第一个參数是文件句柄,第二个是读取方式

        //计算文件大小(字节)
        $num = filesize(‘PHP_3.txt‘);

        $str = fread($rh, $num);
        echo $str;
        //假设设置文件訪问错误,须要去更改文件的权限,属性 --> 右下角--> 开放权限 --> 改为可读可写
        echo "<hr>";

        //换行读取  识别 enter 不识别 <br>
        $str_1 = fgets($rh);
        $str_2 = fgets($rh);
        //换行读取再次读取还会继续上次的读取位置继续读取
        echo $str_1;
        echo "<hr>";
        echo $str_2;

        //file 将文件内容转化为数组,<br>直接转化为换行,回车作为分隔符
        $arr = file(‘PHP_3.txt‘);
        print_r($arr);

        echo "<hr>";

        //file_get_contents 读取文件内容。返回字符串。而且能够读取外部网络数据
    //  echo file_get_contents(‘PHP_3.txt‘);
        //直接读取站点,存到一个文本中,能够直接获取对方的页面静态布局。注意,是静态的!

//  $str_3 = file_get_contents(‘http://www.lanou3g.com‘);
    //  file_put_contents(‘PHP_3.txt‘, $str_3);

        //重命名
    //  rename(‘PHP_3.txt‘, ‘1.txt‘);
    //  rename(‘1.txt‘,‘PHP_3.txt‘);

        //文件拷贝  使用../ 替代上级文件夹
    //  copy(‘PHP_3.txt‘, ‘../test.txt‘);

        //读取文件夹
        //1.打开文件文件夹句柄 .(一个点) 获取本级文件夹 ..(两个点)是上级文件夹
        $rh_1 = opendir(‘.‘);
    //  $arr = readdir()
        //readdir 获取文件文件夹,这个和 MySQL 一样。必须使用循环取出
        while ($num = readdir($rh_1)) {
            //读取出来的
            echo $num;
            echo "<hr>";
        }

        //读取文件夹
        print_r(scandir(‘.‘));

        //创建一个新的文件夹
    //  mkdir(‘asdasd‘);

        //删除整个文件夹  删除文件夹必须保证文件夹内部没有其它文件
    //  $is_bool = rmdir(‘1‘);

        //删除
    //  unlink(‘PHP_3.txt‘);

        //获取文件创建时间
        echo filectime(‘PHP_3.txt‘);

        echo "<hr>";

        //返回文件最后訪问的时间
        echo fileatime(‘PHP_3.txt‘);

        echo "<hr>";
        //解析文件详细名称
        echo basename(‘PHP_3.txt‘,‘txt‘);

        echo "<hr>";
        //获取当前文件所在的文件夹的名称
        echo dirname(‘file/PHP_3.txt‘);

        echo "<hr>";

        //返回全程,拓展名,文件名称
        print_r(pathinfo("PHP_3.txt"));

        //改动文件文件夹权限

        echo "<hr>";
        fclose($rh);
        fclose($rh_1);
    ?

>
时间: 2024-08-23 23:14:27

H5学习_番外篇_PHP数据库操作的相关文章

Android好奇宝宝_番外篇_看脸的世界_05

上一篇番外篇讲了一个炒鸡炒鸡简单的自定义ProgressBar,这一篇基于上一篇的基础扩展为SeekBar,没看过上一篇的,请先看一遍:传送门 先上效果图(2G内存的机子运行模拟器,所以有点卡): 这个效果之前不知道在哪里看到过,我也忘了. 下面进入正题: 测量大小和绘制部分沿用上一篇ProgressBar的,不清楚的请走上面的传送门. 对比上一篇的扩展: (1)SeekBar能通过触摸改变刻度 (2)SeekBar上方添加一个显示当前刻度的浮动View(后面用FloatView表示) (1)通

Android好奇宝宝_番外篇_看脸的世界_06

简单实现波纹效果 其实这一篇的效果实现很简单,写这篇博客重点是为了说另一件事,剧透一下:有关内存泄露的. 先说下效果的实现: 原理: 原理只有一个,就是Shader的使用.Shader我看别人翻译成着色器,其实它的作用就是为画笔增加颜色的渐变,画笔默认是一个颜色画到底,但是使用Shader可以实现从一个颜色渐变到另一个颜色. 想了解更多关于Shader的姿势,推荐博客:传送门 有了Shader,就能很简单的画出波纹的效果了,至于动画效果,只是动态改变画的大小而已. 高清源码: (1)初始化 重写

Android好奇宝宝_番外篇_看脸的世界_04

这一篇是记录一下本猿自定义View的一般思路,通过一个炒鸡简单的自定义ProgressBar讲解一些自定义View的基础知识.适合新手,高手勿喷,有好的指点和想法的欢迎评论. (1)确认需求 写一个自定义View,首先你要确定需求是什么.一般包括外观,事件处理,动画效果. 外观需求:ProgressBar的外观需求非常简单,就是两个矩形(当然也可以是其它形状,这里我们只实现基础的矩形)重叠显示.其中一个固定大小的当背景,一个可变宽度的来显示刻度. 事件处理:ProgressBar不是SeekBa

Android好奇宝宝_番外篇_看脸的世界_02

一个有吃豆人删除动画的ListView 这是一个无聊的效果,由一个无聊的程序猿,在无聊的情况下写的. 虽然这效果不中看中用,不过就当学习了. 先上图 效果一目了然,主要是: (1)移除item时执行吃豆人动画 (2)滚动时吃豆人也相应移动 (3)应对可见与不可见状态间的切换 简单原理分析: (1)吃豆人.豆.和左边的白色矩形(当然所有颜色都是可以改的,你想换成图片也行)都是用canvas画出来的. (2)问:canvas那里来的?答:ListView的canvas.具体是重写ListView的这

Android好奇宝宝_番外篇_看脸的世界_08

废话少说,先上效果图: (左侧的图片是我用window画图软件1分钟画的,所以就不要嫌丑了,You can you up no bb.) 这是我发过最挫的效果图了,不过这是由于没有图片素材导致的,就不要在意这些细节了,知道实现原理后完全可以发挥你的想象去实现更美观的效果. 这个效果也是有开源库的,不过我又把名字给忘了,不过我记得原理,于是就试着自己写了一下. 其实原理很简单,我在另一篇博客(一个有吃豆人删除动画的ListView)也说过了,这一篇当做兑换那些年少轻狂不更事时许下的诺言(是不是瞬间

老子道德经全文_番外篇

道德经 <道德经>全文 [第一章]道可道,非常道:名可名,非常名.无名天地之始,有名万物之母.故常无欲,以观其妙:常 有欲,以观其徼(jiào).此两者同出而异名,同谓之玄,玄之又玄,众妙之门.[译文] [第二章]天下皆知美之为美,斯恶(è)已:皆知善之为善,斯不善已.故有无相生,难易相成,长短相 较,高下相倾,音声相和(hè),前后相随.是以圣人处无为之事,行不言之教,万物作焉而不辞,生而 不有,为而不恃,功成而弗居.夫(fú)唯弗居,是以不去. [译文] [第三章]不尚贤,使民不争:不贵难

Android好奇宝宝_番外篇_看脸的世界_03

无聊刷帖看到一个求助,试着写了一下. 一个自定义Switch控件,附带动画效果. 说是控件,其实是一个布局容器,先上效果图: 先讲原理,再看高清源码. 原理: 好像没啥原理,汗... 跟其它自定义容器控件一样,一般要注意: (1)计算好大小,宽度和高度 (2)计算好子View的布局位置 不是一般要注意的: (3)动画是用的nineoldandroids (4)遮挡效果是通过控制子View的绘制顺序 高清源码: (1)计算大小: protected void onMeasure(int width

Android好奇宝宝_番外篇_看脸的世界_07

废话少说,先上图: (请看底部的4个点) 忘记是在那个APP上看到ViewPager底部的圆点指示器可以随着滚动而滚动的效果,便开始思考要怎么实现,最终发现效果实现很简单,拿来练手自定义View挺不错的. 写码之前: 写代码之前必须至少先有大概的思路,而且不要想到一点就开始写,必须对整体都大概心里有数再开始写.比如在实现这个效果时,刚开始我是想着重写线性布局,然后动态添加圆点,通过margin控制间隔.但是我发现这种办法在滚动时的处理逻辑编写起来比较复杂,既然只是几个圆点而已,直接继承View用

步步为营_Android开发课_番外篇[5]_软件的安装与卸载源码

Focus on technology, enjoy life!-- 杨焕州 QQ:804212028 原文链接:http://blog.csdn.net/y18334702058/article/details/44624305 本文可能存在参考或借助部分外界资源,如有任何侵权行为,请与我联系! 主题:软件的安装与卸载源码 从SDcard安装软件: String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk