为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
PHP进阶篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
  • 这三个函数运用在PHP4和PHP5中。在一些PHP项目中,经常能看到这三个函数的使用。 下面我们通俗的讲下这三个函数的作用。 第一个函数:ob_clean 官方文档的解释是说这个函数抛弃了输出缓冲区的内容,用通俗的话来讲就是忽略掉前面所有的输出,前面本来要显示在页面里的东西全都被清除了,不显示了。 第二个函数:ob_start(); 告诉php从这里开始要记录输出的内容了,并且所有输出放到连续的内存块里。 第三个函数:ob_get_contents(); 这个应该比较容易懂,就是取出从ob_start()函数开始的地方到这个函数之间所有输出的内容,如:$a = ob_get_contents(); $a就是前面所有输出的字符串连接在一起。 ob_start(); ob_clear(); ob_get_contents();这三个函数通常配合来使用,不管你前面输出什么内容,最后从ob_start之后输出的内容都能控制到一个变量里。 下面我们通过一个简单的例子来加深理解,例子如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php echo "1234"; echo "56"; //ob_clean是忽略掉前面所有的输出 也就是说前面那两个输出将不会输出到浏览器 ob_clean(); //ob_start告诉php这里开始要记录输出的内容了,并且所有输出放到连续的内存块里 ob_start(); echo "123"; echo "31"; $b = ob_get_contents();//此时$b的值连接前面所有输出的内容,该例子$b的值为"12331" echo $b; ?>
    查看全部
    0 采集 收起 来源:cookie简介

    2018-03-22

  • gmdate 函数能格式化一个GMT的日期和时间,返回的是格林威治标准时(GMT)。 举个例子,我们现在所在的中国时区是东八区,领先格林威治时间8个小时,有时候也叫GMT+8,那么服务器运行以下脚本返回的时间应该是这样的: 当前时间假定是2014-05-01 15:15:22 echo date('Y-m-d H:i:s', time()); //输出为:2014-05-01 15:15:22 echo gmdate('Y-m-d H:i:s', time()); //输出为:2014-05-01 07:15:22 因为格林威治时间是现在中国时区的时间减去8个小时,所以相对于现在时间要少8个小时 例子: <?php //设置默认时区是中国 date_default_timezone_set("Asia/Shanghai"); //返回2014-05-01 12:00:01的格林威治标准时间 echo gmdate('Y-m-d H:i:s', strtotime('2014-05-01 12:00:01')); ?>
    查看全部
    0 采集 收起

    2018-03-22

  • strtotime函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳。 函数说明:strtotime(要解析的时间字符串, 计算返回值的时间戳【默认是当前的时间,可选】) 返回值:成功则返回时间戳,否则返回 FALSE 比如 echo strtotime("now");//相当于将英文单词now直接等于现在的日期和时间,并把这个日期时间转化为unix时间戳。这个效果跟echo time();一样。 echo strtotime("+1 seconds");//相当于将现在的日期和时间加上了1秒,并把这个日期时间转化为unix时间戳。这个效果跟echo time()+1;一样。 echo strtotime("+1 day");//相当于将现在的日期和时间加上了1天。 echo strtotime("+1 week");//相当于将现在的日期和时间加上了1周。 echo strtotime("+1 week 3 days 7 hours 5 seconds");//相当于将现在的日期和时间加上了1周3天7小时5秒。 例子: <?php //设置默认时区是中国 date_default_timezone_set("Asia/Shanghai"); //返回现在时间过5秒后的unix时间戳 echo strtotime("+5 seconds"); ?>
    查看全部
    0 采集 收起

    2018-03-22

  • cookie 本机储存 session 服务器储存 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。 PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE['key']的形式来读取某个Cookie值。 PHP中的Cookie具有非常广泛的使用,经常用来存储用户的登录信息,购物车等,且在使用会话Session时通常使用Cookie来存储会话id来识别用户,Cookie具备有效期,当有效期结束之后,Cookie会自动的从客户端删除。同时为了进行安全控制,Cookie还可以设置域跟路径,我们会在稍后的章节中详细的讲解他们。
    查看全部
    0 采集 收起 来源:cookie简介

    2017-03-03

  • UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。 PHP提供了内置函数strtotime实现功能:获取某个日期的时间戳,或获取某个时间的时间戳。例如: echo strtotime('2014-04-29');//1398700800,这个数字表示从1970年1月1日 00:00:00 到2014年4月29号经历了1398700800秒 echo strtotime('2014-04-29 00:00:01');//1398700801,这个数字表示从1970年1月1日 00:00:00 到2014-04-29 00:00:01时经历了1398700801秒 大家发现上面的规律了吗,其实strtotime('2014-04-29')相当于strtotime('2014-04-29 00:00:00') 例子: <?php //设置默认时区是中国 date_default_timezone_set("Asia/Shanghai"); //获取2014-05-01的unix时间戳 echo strtotime('2014-05-01'); ?>
    查看全部
    0 采集 收起

    2018-03-22

  • UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。 PHP提供了内置函数 time() 来取得服务器当前时间的时间戳。那么获取当前的UNIX时间戳就很简单了。 $time = time(); echo $time;//1396193923,这个数字表示从1970年1月1日 00:00:00 到我输出这个脚本时经历了1396193923秒 例子: <?php //获取现在的unix时间戳 $time = time(); echo $time; ?>
    查看全部
    0 采集 收起

    2018-03-22

  • 内置方法 __set($key, $val); 给属性名为$key的属性赋值 __get($key); 读取属性名为$key的属性的值,没有则返回null __isset($key); 判断属性名为$key的属性是否存在 __unset($key); 销毁属性名为$key的属性 __call($name, $args); __callStatic($name, $args); 当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
    查看全部
  • 通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。 $filename = '/data/webroot/usercode/resource/test.txt'; $size = filesize($filename); 如果要转换文件大小的单位,可以自己定义函数来实现。 function getsize($size, $format = 'kb') { $p = 0; if ($format == 'kb') { $p = 1; } elseif ($format == 'mb') { $p = 2; } elseif ($format == 'gb') { $p = 3; } $size /= pow(1024, $p); return number_format($size, 3); } $filename = '/data/webroot/usercode/code/resource/test.txt'; $size = filesize($filename); $size = getsize($size, 'kb'); //进行单位转换 echo $size.'kb'; 值得注意的是,没法通过简单的函数来取得目录的大小,目录的大小是该目录下所有子目录以及文件大小的总和,因此需要通过递归的方法来循环计算目录的大小。 例子: <?php $filename = '/data/webroot/usercode/resource/test.txt'; //取得文件的大小并输出 echo filesize($filename);
    查看全部
  • <?php $user = array( 'name' => 'spark1985', 'email' => 'spark@imooc.com', 'mobile' => '13312345678' ); //进行一般性验证 if (empty($user)) { die('用户信息不能为空'); } if (strlen($user['name']) < 6) { die('用户名长度最少为6位'); } //用户名必须为字母、数字与下划线 if (!preg_match('/^\w+$/i', $user['name'])) { die('用户名不合法'); } //验证邮箱格式是否正确 if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $user['email'])) { die('邮箱不合法'); } //手机号必须为11位数字,且为1开头 if (!preg_match('/^1\d{10}$/i', $user['mobile'])) { die('手机号不合法'); } echo '用户信息验证成功';
    查看全部
  • 文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。 fileowner:获得文件的所有者 filectime:获取文件的创建时间 filemtime:获取文件的修改时间 fileatime:获取文件的访问时间 其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。 $mtime = filemtime($filename); echo '修改时间:'.date('Y-m-d H:i:s', filemtime($filename)); 例子: <?php $filename = '/data/webroot/usercode/code/resource/test.txt'; echo '所有者:'.fileowner($filename).'<br>'; echo '创建时间:'.filectime($filename).'<br>'; echo '修改时间:'.filemtime($filename).'<br>'; echo '最后访问时间:'.fileatime($filename).'<br>'; //给$mtime赋值为文件的修改时间 $mtime = filemtime($filename); //通过计算时间差 来判断文件内容是否有效 if (time() - $mtime > 3600) { echo '<br>缓存已过期'; } else { echo file_get_contents($filename); }
    查看全部
  • 一般情况下在对文件进行操作的时候需要先判断文件是否存在,PHP中常用来判断文件存在的函数有两个is_file与file_exists. $filename = './test.txt'; if (file_exists($filename)) { echo file_get_contents($filename); } 如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,is_file是确切的判断给定的路径是否是一个文件。 $filename = './test.txt'; if (is_file($filename)) { echo file_get_contents($filename); } 更加精确的可以使用is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写。 $filename = './test.txt'; if (is_writeable($filename)) { file_put_contents($filename, 'test'); } if (is_readable($filename)) { echo file_get_contents($filename); } 例子: <?php $filename = '/data/webroot/usercode/code/resource/test.txt'; //判断如果$filename文件存在的话 就输出文件内容 if (file_exists($filename)){ echo '文件存在'; }else{ echo '文件不存在'; }
    查看全部
  • 正则表达式的搜索与替换在某些方面具有重要用途,比如调整目标字符串的格式,改变目标字符串中匹配字符串的顺序等。 例如我们可以简单的调整字符串的日期格式: $string = 'April 15, 2014'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = '$3, ${1} $2'; echo preg_replace($pattern, $replacement, $string); //结果为:2014, April 15 其中${1}与$1的写法是等效的,表示第一个匹配的字串,$2代表第二个匹配的。 通过复杂的模式,我们可以更加精确的替换目标字符串的内容。 $patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/', '/^\s*{(\w+)}\s*=/'); $replace = array ('\3/\4/\1\2', '$\1 =');//\3等效于$3,\4等效于$4,依次类推 echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); //结果为:$startDate = 5/27/1999 //详细解释下结果:(19|20)表示取19或者20中任意一个数字,(\d{2})表示两个数字,(\d{1,2})表示1个或2个数字,(\d{1,2})表示1个或2个数字。^\s*{(\w+)\s*=}表示以任意空格开头的,并且包含在{}中的字符,并且以任意空格结尾的,最后有个=号的。 用正则替换来去掉多余的空格与字符: $str = 'one two'; $str = preg_replace('/\s+/', ' ', $str); echo $str; // 结果改变为'one two'
    查看全部
  • extents关键字 实现继承 子类调用父类的属性 $this->name 子类调用父类的方法 parent::func();
    查看全部
  • PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中。 $content = file_get_contents('./test.txt'); file_get_contents也可以通过参数控制读取内容的开始点以及长度。 $content = file_get_contents('./test.txt', null, null, 100, 500); PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。 $fp = fopen('./text.txt', 'rb'); while(!feof($fp)) { echo fgets($fp); //读取一行 } fclose($fp); $fp = fopen('./text.txt', 'rb'); $contents = ''; while(!feof($fp)) { $contents .= fread($fp, 4096); //一次读取4096个字符 } fclose($fp); 使用fopen打开的文件,最好使用fclose关闭文件指针,以避免文件句柄被占用。 例子: <?php $filename = '/data/webroot/usercode/resource/test.txt'; //编写代码读取$filename的文件内容 $content = file_get_contents($filename); echo $content;
    查看全部
  • 类属性必须定义为公有、受保护、私有之一。为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。 类中的方法可以被定义为公有、私有或受保护。如果没有设置这些关键字,则该方法默认为公有。 私有化构造方法实现单例模式: class Car{ private function __construct() { //构造方法私有化 echo 'Car is create'; } private static $instance = null; public static function getInstance() { if(empty(self::$instance)) { self::$instance = new Car(); } } return self::$instance; } $car = Car::getInstance(); 内置函数 empty($obj); 判断$obj是否为空
    查看全部

举报

0/150
提交
取消
课程须知
需要有一定的网页基础知识如HTML、CSS样式等,并且已经学习完成《PHP入门篇》对PHP已经有了简单的了解,如变量、常量、数据类型等。
老师告诉你能学到什么?
全面的掌握PHP的理论知识与实践中的应用方法,提高编程能力与掌握网页开发技能。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!