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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
  • 正则匹配常用案例 正则匹配常用在表单验证上,一些字段会有一定的格式要求,比如用户名一般都要求必须是字母、数字或下划线组成,邮箱、电话等也都有自己的规则,因此使用正则表达式可以很好的对这些字段进行验证。 die() 函数输出一条消息,并退出当前脚本。 ^ 断言目标的开始位置(或在多行模式下是行首) ^只有在[]内 且为第一个字符时才表示取反 $ 断言目标的结束位置(或在多行模式下是行尾) . 匹配除换行符外的任何字符(默认)
    查看全部
  • echo preg_replace($pattern, $replacement, $string);这个函数 $replacement 表示 $string 按照 $pattern 表达式匹配后得到的再按 $replacement 形式输出。$replacement也可以是正则表达式 $0的意思: 如果$p='/(\w)+\.(\w)+/i',也就是给\w加上括号,$1就是指第一个(\w)匹配到的所有字符,即index, style, common;$2就是指第2个(\w)匹配到的所有字符,即php, css, js; 而$0则表示保存完整模式的所有匹配;
    查看全部
  • 正则表达式的搜索和替换(讲义) 正则表达式的搜索与替换在某些方面具有重要用途,比如调整目标字符串的格式,改变目标字符串中匹配字符串的顺序等。 例如我们可以简单的调整字符串的日期格式: $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'
    查看全部
  • <?php $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); //填充画布,填的是$white色 //生成随机的验证码 $code = ''; //格式化,也要可不要 for($i = 0; $i < 4; $i++) { //$i=0,$i<4 意思是循环4次 $code .= rand(0, 9); //$code就等于$code.$code.$code.$code 咧:1.2.3.4 但没有‘.’的 } imagestring($img, 5, 10, 10, $code, $black); //开始把那随机数进去 第五个参数就是要添加的文字 //加入噪点干扰 for($i=0;$i<50;$i++) { //循环50次 imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black); //imagesetpixel是一个单一像素 第二个参数是X坐标,第三个参数是Y坐标 imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green); //同上 } //输出验证码 header("content-type: image/png"); imagepng($img); imagedestroy($img);
    查看全部
    0 采集 收起

    2018-03-22

  • 1、通过imagepng可以直接输出图像到浏览器 2、使用imagepng可以将图像保存成png格式,如果要保存成其他格式需要使用不同的函数,使用imagejpeg将图片保存成jpeg格式,imagegif将图片保存成gif格式,需要说明的是,imagejpeg会对图片进行压缩,因此还可以设置一个质量参数。 3、imagepng($img, $filename); ​imagejpeg($img, $filename, 80); 图片质量 quality 为可选项,范围从 0(最差质量,文件更小)到 100(最佳质量,文件最大)。默认为 IJG 默认的质量值(大约 75)
    查看全部
    0 采集 收起

    2017-02-21

  • $p = "/<tr><td>(.*?)<\/td>\s*<td>(.*?)<\/td>\s*<\/tr>/i";中的(.*?)是什么意思?怎么理解? *?是非贪婪匹配,尽可能匹配少的字符串。 因为“>”也是会被“.”匹配到的,不使用非贪婪匹配就不会只匹配标签内的字符串了(会把</td>等等都给匹配进去) .表示所有单字符 *表示数量为0个或者多个。
    查看全部
  • PHP在图像中绘制文字: 1、GD库可以进行多种图形的基本操作,常用的有绘制线条,背景填充,画矩形,绘制文字等。 2、imagestring函数来进行文字的绘制,这个函数的参数很多:imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ),可以通过$font来设置字体的大小,x,y设置文字显示的位置,$s是要绘制的文字,$col是文字的颜色。
    查看全部
    0 采集 收起

    2017-02-21

  • 查找所有匹配结果 preg_match只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。 $p = "|<[^>]+>(.*?)</[^>]+>|i";//开头和结尾的|应该和/一样吧 因为html标签里面有/所以用|不用转义。 <匹配<, [^>]+匹配不是>的字符在[]里面^代表不是后面的字符额+表示匹配多次,>匹配>;(.*?)表示组 .匹配除换行符 \n 之外的任何单字符,*?代表非贪婪模式;后面的还开头的一个差不多匹配</xxxx>;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] 保存第一个子组的所有匹配,以此类推。
    查看全部
  • 摘录: 通过imagecreatetruecolor函数创建画布:$画布名称 = imagecreatetruecolor(宽, 高); 通过imagecolorallocate函数设定颜色:$颜色名称 = imagecolorallocate($所属画布名称, red, green, blue); 通过mageline绘制线条:imageline($所属画布名称, 起点x, 起点y, 终点x, 终点y, $使用的颜色名称); 通过imagestring绘制文字:imagestring ( $所属画布名称 , 字体大小 , 显示坐标x , 显示坐标y , "输出字符串" , $想要的颜色 ); 绘制后通过header与imagepng输出图像: header("content-type: image/png"); imagepng($要输出的画布名称); 调用imagedestroy释放该图片占用的内存: imagedestroy($要释放的画布名称); 通过imagepng指定文件名将绘制后的图像保存文件夹中。 $filename = '文件名.jpg'; $filename2 = '文件名.gif'; imagepng($要保存的画布名称, '文件名.png'); ​imagejpeg($要保存的画布名称, $filename, 图片质量数值); imagegif($要保存的画布名称, $filename); 使用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

  • \w匹配字母或数字或下划线 \s匹配任意的空白符,包括空格,制表符,换行符。[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。
    查看全部
  • 定义一个静态的类要加 关键词 static 而且不能直接用—>来调用;
    查看全部
  • php中 构造函数 用函数__construct()调用; 析构函数 用__destruct()调用;
    查看全部
  • $car = Car::getInstance();还有Car::getInstance输出结果也是一样的,理解是$car = Car::getInstance是实例化一个对象,而后面的Car::getInstance没有实例对象而是直接调用了.
    查看全部
  • 正则表达式的强大的地方是进行模式匹配,因此更多的时候,会使用模式: $subject = "abcdef"; $pattern = '/a(.*?)d/'; preg_match($pattern, $subject, $matches); print_r($matches); //结果为:Array ( [0] => abcd [1] => bc ) 通过正则表达式可以匹配一个模式,得到更多的有用的数据。 *? 重复任意次,但尽可能少重复 +? 重复1次或更多次,但尽可能少重复 ?? 重复0次或1次,但尽可能少重复 {n,m}? 重复n到m次,但尽可能少重复 {n,}? 重复n次以上,但尽可能少重复 所以并不是取0个,,举个例子 a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab
    查看全部
  • 使用正则表达式进行匹配 使用正则表达式的目的是为了实现比字符串处理函数更加灵活的处理方式,因此跟字符串处理函数一样,其主要用来判断子字符串是否存在、字符串替换、分割字符串、获取模式子串等。 PHP使用PCRE库函数来进行正则处理,通过设定好模式,然后调用相关的处理函数来取得匹配结果。 preg_match用来执行一个匹配,可以简单的用来判断模式是否匹配成功,或者取得一个匹配结果,他的返回值是匹配成功的次数0或者1,在匹配到1次以后就会停止搜索。 $subject = "abcdef"; $pattern = '/def/'; preg_match($pattern, $subject, $matches); print_r($matches); //结果为:Array ( [0] => def )
    查看全部

举报

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

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