-
正则表达式中常用的模式修正符有i、g、m、s、x、e等。它们之间可以组合搭配使用。 它们的作用如下: //修正符:i 不区分大小写的匹配; //修正符:g表示全局匹配 //修正符:m 将字符串视为多行,不管是那行都能匹配; //修正符:s 将字符串视为单行,换行符作为普通字符; //修正符:x 将模式中的空白忽略; //修正符:A 强制从目标字符串开头匹配; //修正符:D 如果使用$限制结尾字符,则不允许结尾有换行; //修正符:U 只匹配最近的一个字符串;不重复匹配; //修正符:e 配合函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行;查看全部
-
定义方法: public function getName() {} $car = new Car();$car->getName(); 使用关键字static修饰的,称之为静态方法,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号:: public static function getName() {} Car::getName();查看全部
-
在类中定义的变量称之为属性 属性声明是由关键字 public,protected 或者 private 开头 属性的变量可以设置初始化的默认值,默认值必须是常量。 一般通过->对象操作符来访问对象的属性或者方法, 对于静态属性则使用::双冒号进行访问。 当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。 受保护的属性与私有属性不允许外部调用,在类的成员方法内部是可以调用的。查看全部
-
cookie将数据存储在客户端,建立起用户与服务器之间的联系,通常可以解决很多问题,但是cookie仍然具有一些局限: cookie相对不是太安全,容易被盗用导致cookie欺骗 单个cookie的值最大只能存储4k 每次请求都要进行网络传输,占用带宽 session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。查看全部
-
cookie中的路径用来控制设置的cookie在哪个路径下有效,默认为'/',在所有路径下都有,当设定了其他路径之后,则只在设定的路径以及子路径下有效,例如: setcookie('test', time(), 0, '/path'); 上面的设置会使test在/path以及子路径/path/abc下都有效,但是在根目录下就读取不到test的cookie值。 一般情况下,大多是使用所有路径的,只有在极少数有特殊需求的时候,会设置路径,这种情况下只在指定的路径中才会传递cookie值,可以节省数据的传输,增强安全性以及提高性能。 当我们设置了有效路径的时候,不在当前路径的时候则看不到当前cookie。 setcookie('test', '1',0, '/path'); var_dump($_COOKIE['test']);查看全部
-
cookie本身在使用上有一些限制,例如: 1.呼叫setcookie的敘述必須放在<html>標籤之前 2.呼叫setcookie之前,不可使用echo 3.直到網頁被重新載入後,cookie才會在程式中出現 4.setcookie函數必須在任何資料輸出至瀏覽器前,就先送出 在使用时候报错,找到的原因,这个要注意下查看全部
-
ob_start();//打开输出控制缓冲 print_r($_COOKIE); $content = ob_get_contents();//复制缓冲区内容到$content中 $content = str_replace(" ", ' ', $content); ob_clean();//清空(擦掉)输出缓冲区 header("content-type:text/html; charset=utf-8"); echo '当前的Cookie为:<br/>'; echo nl2br($content);//nl2br 在字符串所有新行之前插入 HTML 换行标记查看全部
-
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还可以设置域跟路径,我们会在稍后的章节中详细的讲解他们。查看全部
-
<?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 '用户信息验证成功';查看全部
-
查找所有匹配结果 preg_match只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。 $p = "|<[^>]+>(.*?)</[^>]+>|i"; $str = "<b>example: </b><div align=left>this is a test</div>"; preg_match_all($p, $str, $matches); print_r($matches); 可以使用preg_match_all匹配一个表格中的数据: $p = "/<tr><td>(.*?)<\/td>\s*<td>(.*?)<\/td>\s*<\/tr>/i"; $str = "<table> <tr><td>Eric</td><td>25</td></tr> <tr><td>John</td><td>26</td></tr> </table>"; preg_match_all($p, $str, $matches); print_r($matches); $matches结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。查看全部
-
使用正则表达式的目的是为了实现比字符串处理函数更加灵活的处理方式,因此跟字符串处理函数一样,其主要用来判断子字符串是否存在、字符串替换、分割字符串、获取模式子串等。 PHP使用PCRE库函数来进行正则处理,通过设定好模式,然后调用相关的处理函数来取得匹配结果。 preg_match用来执行一个匹配,可以简单的用来判断模式是否匹配成功,或者取得一个匹配结果,他的返回值是匹配成功的次数0或者1,在匹配到1次以后就会停止搜索。 $subject = "abcdef"; $pattern = '/def/'; preg_match($pattern, $subject, $matches); print_r($matches); //结果为:Array ( [0] => def ) 上面的代码简单的执行了一个匹配,简单的判断def是否能匹配成功,但是正则表达式的强大的地方是进行模式匹配,因此更多的时候,会使用模式: $subject = "abcdef"; $pattern = '/a(.*?)d/'; preg_match($pattern, $subject, $matches); print_r($matches); //结果为:Array ( [0] => abcd [1] => bc ) 通过正则表达式可以匹配一个模式,得到更多的有用的数据查看全部
-
数组下标0的结果($matchs[0])是整个表达式的匹配结果,下标1的结果($matchs[1])是第一个小括号里的表达式 (.*) 的匹配结果,如果还有第二,第三个括号,那么以此类推查看全部
-
关于match数组的说明: 文档上的解释为:如果提供了参数 matches ,它将被填充为搜索结果。 $matches[0] 将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。 文档上对于子组的说明为:子组通过圆括号分隔界定,并且它们可以嵌套。 如果正则表达式写为$p = '/\w+\s\w+/';,则没有子组,$matches[1]为空,而$matches[0]包含所匹配的文本;但是将表达式加上括号写为$p = '/(\w+\s\w+)/';,则有了子组,此时$matches[1]与$matches[0]相同。查看全部
-
通常定义一个汽车类的方法为: class Car { $name = '汽车'; function getName() { return $this->name; } } 类是一类东西的结构描述,而对象则是一类东西的一个具体实例,例如汽车这个名词可以理解为汽车的总类,但这辆汽车则是一个具体的汽车对象。 对象通过new关键字进行实例化: $car = new Car(); echo $car->getName();查看全部
-
关联数组是指数组的键是字符串的数组查看全部
举报
0/150
提交
取消