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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
  • 注意:替换的字符串不是正则表达式,但是可以使用\1或者$1来表示正则表达式中的子式。
    查看全部
  • $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,依次类推,此处数组元素的第二个\1,表示模式中的子式(\w+),即startDate echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); //结果为:$startDate = 5/27/1999 0、如果模式为一个数组,则$replace也为一个数组,这样可以批量进行匹配和替换。 1、(19|20)表示取19或者20中任意一个数字,(\d{2})表示两个数字,(\d{1,2})表示1个或2个数字,(\d{1,2})表示1个或2个数字。^\s*{(\w+)\s*=}表示以任意空格开头的,并且包含在{}中的字符,并且以任意空格结尾的,最后有个=号的。
    查看全部
  • 1、通过preg_replace()对字符串中的子串调整位置: $string = 'April 15, 2014';//日期 $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = '$3, ${1} $2';//数字为指定位置,$3表示匹配的第三个子式。 echo preg_replace($pattern, $replacement, $string); //结果为:2014, April 15
    查看全部
  • setcookie(名称 , 值 , 有效期 , 路径 , 域 , 是否通过安全传输);其中名称和值是必需的,后面的可选。
    查看全部
  • 对于$preg_match_all($p, $str, $match),$match为一个二维数组,其中$match[0]为一个保存所有匹配的数组,即$match[0][0]保存第一个匹配的字符串,$match[0][1]保存第二个匹配的字符串,以此类推。 $match[1]为一个数组,保存整个模式下,第一个子模式对应的数组,即$match[1][0]保存第一个匹配字符串中,第一次出现的子模式;$match[1][1]保存第二个匹配字符串中,第一次出现的子模式。
    查看全部
  • 1、preg_match()在匹配一次后就结束,并返回1,如果不匹配,则返回0. 2、 '/a(.*?)d/',.表示匹配任意符号,*表示可以有多个,?表示使用懒惰模式
    查看全部
  • 1、\w匹配字母或数字或下划线,\s匹配任意的空白符,包括空格、制表符、换行符 2、贪婪模式:\d+\-\d+,即匹配至少一个数字:\d+,或者更多 3、懒惰模式:\d?\-\d?,即匹配尽量少的数字:\d?
    查看全部
  • 对象的高级特性: 对象比较,当 [**同一个类的两个实例**] 的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断。 class Car { } $a = new Car(); $b = new Car(); if ($a == $b) echo '=='; //true if ($a === $b) echo '==='; //false if ($a === $a) echo '==='; //true 对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。 class Car { public $name = 'car'; public function __clone() { $obj = new Car(); //对象的复制并不能增减对象属性、方法 $obj->name = $this->name; } } $a = new Car(); $a->name = 'new car'; $b = clone $a; var_dump($b); 对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。 class Car { public $name = 'car'; } $a = new Car(); $str = serialize($a); //对象序列化成字符串 echo $str.'<br>'; $b = unserialize($str); //反序列化为对象 var_dump($b);
    查看全部
  • 重载: 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。 class Car { private $ary = array(); public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); } } $car = new Car(); $car->name = '汽车'; //name属性动态创建并赋值 echo $car->name; 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。 class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } } } $car = new Car(); $car->speedUp(); //调用不存在的方法会使用重载 echo $car->speed; 注意:魔术方法一般要使用public否则会有warning
    查看全部
  • parent::父方法()中return也会照常执行 当parent::父方法()中遇到return时,强制结束的是parent::父方法(),并不是引用该方法入内的子类的覆盖方法。 注意函数内代码是函数独立进行的,不会影响外部数据的特性。
    查看全部
  • 单例模式只允许有一个全局唯一的对象 class Car { private function __construct() { echo 'object create'; } private static $_object = null; public static function getInstance() { if (empty(self::$_object)) { self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象 } return self::$_object; } } //$car = new Car(); //这里不允许直接实例化对象 $car = Car::getInstance(); //通过静态方法来获得一个实例
    查看全部
  • 元字符有: \ 转义 ^ 不属于该集合、在行首 $ 行尾 . 匹配除换行符外的任何字符(默认) [ 开始字符类定义 ] 结束字符类定义 | 开始一个可选分支 ( 子组的开始标记 ) 子组的结束标记 ? 作为量词,0<= ? <=1,使用贪婪匹配 * 量词,0 <= * + 量词,1 <= + { 自定义量词开始标记 } 自定义量词结束标记 \s 匹配空字符 \d 匹配数字 preg_match($p, $str, $match);$match存入与模式匹配的字符串
    查看全部
    0 采集 收起 来源:元字符与转义

    2018-03-22

  • 1、PCRE库函数中,正则匹配模式使用 分隔符 与 元字符 组成,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。各种分隔符:/foo bar/ #^[^0-9]$# ~php~ 2、如果模式中包含分隔符,则分隔符需要使用反斜杠(\)进行转义。/ http:\/\/ /,采用/作为分隔符后,需要进行转义。 3、如果模式中包含较多的分割字符,建议更换其他的字符作为分隔符,也可以采用preg_quote进行转义。$p = 'http://'; $p = '/'.preg_quote($p, '/').'/'; 4、分隔符后面可以使用模式修饰符,模式修饰符包括:i, m, s, x等,例如使用i修饰符可以忽略大小写匹配:preg_match('/http/i', $str)
    查看全部
  • 注意:preg_match()只能判断模式是否存在,而无法把匹配模式的字符串打印出来。
    查看全部
  • 1、使用PCRE库函数进行regular expression: $regx='/apple/';//注意需要用两个正斜杠//来引住expression preg_match($regx, $str);//该方法来判断模式是否存在
    查看全部

举报

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

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