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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
  • 当代码中使用了try catch的时候,抛出的异常会在catch中捕获,否则会直接中断。 1、基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Exception是php已定义好的异常类 } catch(Exception $e){ //对异常处理,方法: //1、自己处理 //2、不处理,将其再次抛出 } 2、处理处理程序应当包括: Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。 Throw - 这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch" Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。
    查看全部
  • PHP图形操作之给图片添加水印 给图片添加水印的方法一般有两种,一种是在图片上面加上一个字符串,另一种是在图片上加上一个logo或者其他的图片。 因为这里处理的是已经存在的图片,所以可以直接从已存在的图片建立画布,通过imagecreatefromjpeg可以直接从图片文件创建图像。 $im = imagecreatefromjpeg($filename); 创建图像对象以后,我们就可以通过前面的GD函数,绘制字符串到图像上。如果要加的水印是一个logo图片,那么就需要再建立一个图像对象,然后通过GD函数imagecopy将logo的图像复制到源图像中。 $logo = imagecreatefrompng($filename); imagecopy($im, $logo, 15, 15, 0, 0, $width, $height); 当将logo图片复制到原图片上以后,将加水印后的图片输出保存就完成了加水印处理。 imagejpeg($im, $filename);
    查看全部
    0 采集 收起

    2016-11-18

  • $img = imagecreatetruecolor(100, 40); $black = imagecolorallocate($img, 0x00, 0x00, 0x00); $green = imagecolorallocate($img, 0x00, 0xFF, 0x00); $white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF); imagefill($img,0,0,$white); //生成随机的验证码 $code = ''; for($i = 0; $i < 4; $i++) { $code .= rand(0, 9); } imagestring($img, 5, 10, 10, $code, $black); //加入噪点干扰 for($i=0;$i<50;$i++) { imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black); imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green); } //输出验证码 header("content-type: image/png"); imagepng($img); imagedestroy($img);
    查看全部
    0 采集 收起

    2018-03-22

  • PHP图形操作之生成图像验证码 简单的验证码其实就是在图片中输出了几个字符,通过我们前面章节讲到的imagestring函数就能实现。 但是在处理上,为了使验证码更加的安全,防止其他程序自动识别,因此常常需要对验证码进行一些干扰处理,通常会采用绘制一些噪点,干扰线段,对输出的字符进行倾斜、扭曲等操作。 可以使用imagesetpixel绘制点来实现噪点干扰,但是只绘制一个点的作用不大,因此这里常常会使用循环进行随机绘制。 for($i=0;$i<50;$i++) { imagesetpixel($im, rand(0, 100) , rand(0, 100) , $black); imagesetpixel($im, rand(0, 100) , rand(0, 100) , $green); }
    查看全部
    0 采集 收起

    2018-03-22

  • 通过imagepng可以直接输出图像到浏览器,但是很多时候,我们希望将处理好的图像保存到文件,以便可以多次使用。通过指定路径参数将图像保存到文件中。 $filename = 'img.png'; imagepng($img, $filename); 使用imagepng可以将图像保存成png格式,如果要保存成其他格式需要使用不同的函数,使用imagejpeg将图片保存成jpeg格式,imagegif将图片保存成gif格式,需要说明的是,imagejpeg会对图片进行压缩,因此还可以设置一个质量参数。 $filename = 'img.jpg'; ​imagejpeg($img, $filename, 80);
    查看全部
    0 采集 收起

    2016-11-18

  • PHP图形操作之绘制线条 要对图形进行操作,首先要新建一个画布,通过imagecreatetruecolor函数可以创建一个真彩色的空白图片: $img = imagecreatetruecolor(100, 100); GD库中对于画笔所用的颜色,需要通过imagecolorallocate函数进行分配,通过参数设定RGB的颜色值来确定画笔的颜色: $red = imagecolorallocate($img, 0xFF, 0x00, 0x00); 然后我们通过调用绘制线段函数imageline进行线条的绘制,通过指定起点跟终点来最终得到线条。 imageline($img, 0, 0, 100, 100, $red); 线条绘制好以后,通过header与imagepng进行图像的输出。 header("content-type: image/png"); imagepng($img); 最后可以调用imagedestroy释放该图片占用的内存。 imagedestroy($img); 通过上面的步骤,可以发现PHP绘制图形非常的简单,但很多时候我们不只是需要输出图片,可能我们还需要得到一个图片文件,可以通过imagepng函数指定文件名将绘制后的图像保存到文件中。 imagepng($img, 'img.png');
    查看全部
    0 采集 收起

    2018-03-22

  • cookie存储信息的过程 header("content-type:text/html; charset=utf-8"); /* 将用户信息保存到session中 */ $_SESSION['uid'] = $userinfo['uid']; $_SESSION['name'] = $userinfo['name']; $_SESSION['userinfo'] = $userinfo; //* 将用户数据保存到cookie中的一个简单方法 */ $secureKey = 'imooc'; //加密密钥 $str = serialize($userinfo); //将用户信息序列化 //用户信息加密前 $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB)); //用户信息加密后 //将加密后的用户数据存储到cookie中 setcookie('userinfo', $str); //当需要使用时进行解密 $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB); $uinfo = unserialize($str); echo "解密后的用户信息:<br>"; print_r($uinfo);
    查看全部
  • $sql = "update user set name = '曹操' where id=2 limit 1";
    查看全部
  • $page = 2; $n = 2; $m = ($page - 1) * $n; $sql = "select * from user limit $m, $n"; $result = mysql_query($sql); //循环获取当前页的数据 $data = array(); while ($row = mysql_fetch_assoc($result)) { $data[] = $row; }
    查看全部
  • 这一节说的贪婪模式和懒惰模式并不正确,实际上一共有三种模式: 1.贪婪模式:默认就是,加了三个量词后(包括*、+和?)就是贪婪匹配,可以理解为从后往前匹配,即先“吞掉”整个字符串,然后从后往前一个字符一个字符的“吐掉”(即去掉最后的一个字符看剩下的字符串是否匹配,?除外,因为?代表0次或1次,只需要一个字符一个字符的匹配),当发现匹配时终止;(我发现单独的作为量词的?比较特殊,因为他最多匹配一个字符或一个分组,也就无所谓贪婪模式或者懒惰模式了,即既可以看成贪婪模式也可以看成懒惰模式,因为就一个字符不管是从前往后还是从后往前都是一样的) 2.懒惰模式:三个量词后加上?(包括*?、+?和??)就是懒惰匹配,可以理解为从前往后匹配,即先吞掉一个字符,看是否匹配,如果不匹配,继续吞掉一个字符,直到发现匹配或者到达字符串结尾,如果中途发现匹配,也会继续往后重新查找匹配,所以可能会有多个匹配结果; 3.占有模式(或叫侵占模式):三个量词后加上+(包括*+、++和?+)就是占有匹配,和贪婪模式有点像,但其实不一样,同样先“吞掉”整个字符串,但是他不回退,也就是不“吐掉”任何字符就进行匹配,而且仅匹配一次,即有且仅有一次匹配。我想这个用得比较少,因为吞掉整个字符串后,量词后跟了内容就肯定匹配不到了,除非你想获得所有内容。
    查看全部
  • //这里是为了说明本节中关于懒惰模式的例子是错误的 $p = '/\d?\-\d?/'; $str = "我的电话是910-92345678"; //我把电话号码里的第一个0改为了9,这样更能看清匹配出的是哪个数字 preg_match($p, $str, $match); echo $match[0]; //结果为:0-9 /*匹配过程:- 把字符串分为910和92345678两部分,910从最后一个0开始,0匹配\d?(出现1次数字),而且后面紧跟 - ,符合,结束(或者理解为先从9开始,后面-不匹配,接着1,同样不匹配,到0匹配,这里匹配包括了后面的-,后面92345678同样道理);92345678 也从最后一个8开始, 虽然匹配\d?, 但是前面不是-, 回退 一个数字到7, 同样不符合,直到9才符合,结束。注意:\d?每次只吞掉一个字符,因为?代表0或者1次,而*和+号要吞掉整个字符串。所以这里关于懒惰模式的例子是错误的。结果里的0-1,0根本就不是第一个0,而是第三个,这根本就不叫懒惰模式,如果是懒惰模式,应该匹配出的是第一个0 。*/
    查看全部
  • 两种数组:索引数组:数组的键是整数的数组,并且键的整数顺序是从零开始的。 关联数组
    查看全部
  • $sql = "insert into user(name,age,class) values('李四',18,‘高三一班’)"; mysql_query($sql);//执行sql的插入语句
    查看全部
  • mysql扩展进行数据库连接的方法 $link = mysql_connect('mysql_host','mysql_user','mysql_password');
    查看全部
    0 采集 收起 来源:PHP数据库扩展

    2016-11-17

  • 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
    查看全部

举报

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

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