php字符串截取

php中正则表达式详解

巧了我就是萌 提交于 2020-03-13 06:24:14
概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要围绕解决下面问题展开。 有哪些常用的转义字符 什么是限定符与定位符 什么是单词定位符 特殊字符有哪些 什么是逆向引用以及怎样使用逆向引用 匹配模式 php中怎样使用正则表达式 php中哪些方面需要用到正则 怎样进行邮箱匹配,url匹配,手机匹配 怎样使用正则替换字符串中某些字符 贪婪匹配与惰性匹配区别 正则表达式之回溯与固态分组 正则优缺点有哪些 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界。 “$” 表示行结尾 “^” 表示行开始如 "^de" ,表示以de开头的字符串 "de$" ,表示以de结尾的字符串。 单词定界符 我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反

php系统函数

时光毁灭记忆、已成空白 提交于 2020-03-08 08:04:56
系统函数 数组相关的函数: 数组的键/值操作: 1.array_values($arr) 返回数组中所有的值并给其建立数字索引 2.array_keys($arr[, '值'[, true]]) 返回数组中所有的键名 给'值'表示拿出该值的键 给'true'表示值用===判断 3.in_array('值', $arr[, true]) 判断数组中是否有某个值 给true表示用===判断 4.array_key_exists('键', $arr) 判断数组中是否有某个键 5.array_flip($arr) 键值交换 6.array_reverse($arr[, true]) 反转数组 给true表示保留原来的数字下标 统计与唯一性: count($arr[, 1]) 统计数组元素的个数 给1表示递归统计数组个数(不常用) array_count_values($arr) 统计数组中值出现的次数 注意:只能统计string或者int,否则报错 substr_count($str,',')统计字符串某字符出现的次数。 array_unique($arr) 去除数组中重复的元素,保留前面的值 使用回调函数过滤数组: array_filter($arr, callback); 会将数组中的每个值都传给回调函数,在回调函数中返回true就保留该值,返回false就不保留 数组排序函数: 1

写给小白的Python之004:数据类型之字符串

让人想犯罪 __ 提交于 2020-03-08 07:51:00
导读: 1.字符串 2.转义字符 3.字符串的运算 4.字符串的索引 5.字符串的切片 6.字符串的常用操作 字符串是Python中很重要的数据类型。 一、字符串 1. 如何表示字符串 单引号、双引号、三引号。 >>> 'hello' 'hello' >>> "hello" 'hello' >>>''' Tom said:"I'm Tom" ''' 'Tom said:"I'm Tom" ' 2. 1和 '1' 是有区别的 >>> type(1) # 1 <class 'int'> >>> type('1') # '1' <class 'str'> 注:type()可查看数据的类型。int表示整型。str表示字符串。 3. 引号的包裹问题 相同的引号不能互相包裹,只能是不同引号间包裹。 >>> "let's go" "let's go" >>> 'let's go' File "<stdin>", line 1 'let's go' ^ SyntaxError: invalid syntax >>> 'let"s go' 'let"s go' 可以使用转义字符:不推荐使用 >>> 'let\'s go' "let's go" 4. 代码换行 Python的IDLE中推荐一行输入79个字符,那怎样使代码换行呢? >>> "hello world hello world hello

PHP加密函数

旧城冷巷雨未停 提交于 2020-03-03 00:46:45
单向散列加密 单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出.这个散列计算是单向的,即不能对固定长度的输出进行计算从而获取输入信息. 特征:雪崩效应、定长输出和不可逆 作用:确保数据的完整性 MD5 :以 32 字符十六进制数字形式返回散列值。( 如果第二个参数为true,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 ***由于此函数依赖的算法已不足够复杂,不推荐使用此函数对明文密码加密。详细内容参见 附录2 。 ) crypt :单向字符串散列。( 如果第二个参数没有,创建出的会是弱密 码,php5.6之后没有会抛出E_NOTICE 级别的错误。为了更 好的安全性,请确保指定一个足够强度的盐值。 ) 附录1 sha1 :以 32 字符十六进制数字形式返回散列值。( 如果第二个参数为true,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 ***由于此函数依赖的算法已不足够复杂,不推荐使用此函数对明文密码加密。详细内容参见 附录2 。 ) 对称加密 对称加密是指加密和解密使用的密钥是同一个或者可以互相推算. urlencode :编码 URL 字符串(除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)) urldecode :解码已编码的 URL 字符串 base64

PHP面试题

前提是你 提交于 2020-02-29 00:22:07
此面试题根据 云知梦 免费课程总结整理得出。 选择题: 输出为 Mozilla/5.0 (Windows NT 10.0; Win64; x64) 时,可能的输出语句是? A. $_SERVER['AGENT']; B. $_SERVER['USER_AGENT']; C. $_SERVER['HTTP_USER_AGENT']; D. $_SERVER['HTTP_USER_AGENT_TYPE']; 答案:C 下面功能PHP无法实现的是? A. 服务端脚本运行 B. 客户端图形界面(GUI)程序 C. 命令行脚本运行 D. 浏览器端执行 DOM 操作 答案:B D 下面说法不正确的是? A. PHP有四种标量类型:布尔型(bool)、整型(int)、字符串(string)、浮点型(float) B. 浮点型(float)与双精度型(double)是同一种类型 C. 复合类型包括:数组(array)、对象(object)、资源(resource) D. 伪类型包括:混合类型(mixed)、数字型(number)、回调(callback) 答案:C 资源(resource)和NULL属于特殊类型 执行代码后 <?php echo function_exists('print'); ?> ,输出的结果是? A. false B. FALSE C. true D. 空 答案:D

bugku 变量

空扰寡人 提交于 2020-02-27 06:53:34
<?php error_reporting ( 0 ); include "flag1.php" ; highlight_file ( __file__ ); if(isset( $_GET [ 'args' ])){ $args = $_GET [ 'args' ]; if(! preg_match ( "/^\w+$/" , $args )){ die( "args error!" ); } eval( "var_dump($ $args );" ); } ?> 这是这道题目,不说了,先查函数功能。破局点就在函数的漏洞中。 error——reporting(0) 参数是0禁止报错。 highlight_file(_file_): 语法 highlight_file(filename,return) 参数 描述 filename 必需。要进行高亮处理的 PHP 文件的路径。 return 可选。如果设置 true,则本函数返回高亮处理的代码。 说明 本函数通过使用 PHP 语法高亮程序中定义的颜色,输出或返回包含在 filename 中的代码的语法高亮版本。 许多服务器被配置为对带有 phps 后缀的文件进行自动高亮处理。例如,在查看 example.phps 时,将显示该文件被语法高亮显示的源代码。要启用该功能,请把下面这一行添加到 httpd.conf : AddType

PHP中的正则表达式及模式匹配

萝らか妹 提交于 2020-02-26 03:11:30
PHP中对于正则处理文本提供了两种方式,一种是PCRE方式(PCRE库是一个实现了与perl 5在语法和语义上略有差异(详见下文)的正则表达式模式匹配功能的函数集. 当前的实现对应于perl 5.005.);另一个是POSIX方式。 PCRE函数库中的函数使用的模式语法非常类似perl. 表达式必须用分隔符闭合, 比如一个正斜杠(/). 分隔符可以使任意非字母数字, 除反斜杠(\)和空字节之外的非空白ascii字符. 如果分隔符 在表达式中使用, 需要使用反斜线进行转义. 自php 4.0.4开始, 可以使用perl样式的(), {}, []以及<>作为分隔符. 更详细的解释参见模式语法. 结束分隔符后面可以紧跟模式修饰符来影响匹配效果. 参见模式修饰符. PCRE的模式修正符 i (PCRE_CASELESS) 如果设定此修正符,模式中的字符将同时匹配大小写字母。 s(PCRE_DOTALL) 如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。 m(PCRE_MULTILINE) 默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始

php中正则表达式详解

五迷三道 提交于 2020-02-16 06:39:16
概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要围绕解决下面问题展开。 有哪些常用的转义字符 什么是限定符与定位符 什么是单词定位符 特殊字符有哪些 什么是逆向引用以及怎样使用逆向引用 匹配模式 php中怎样使用正则表达式 php中哪些方面需要用到正则 怎样进行邮箱匹配,url匹配,手机匹配 怎样使用正则替换字符串中某些字符 贪婪匹配与惰性匹配区别 正则表达式之回溯与固态分组 正则优缺点有哪些 正则表达式的基本知识汇总 行定位符(^与$) 行定位符是用来描述字符串的边界。 “$” 表示行结尾 “^” 表示行开始如 "^de" ,表示以de开头的字符串 "de$" ,表示以de结尾的字符串。 单词定界符 我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反

php 正则匹配省市区

£可爱£侵袭症+ 提交于 2020-02-14 23:21:46
匹配指定前后内容中的值 如匹配/xxx-abc中的abc preg_match('/\/xxx-([^<]*)/i', $route, $matches); echo $matches[1]; 去除字符串中换行 // 1)使用转义字符函数 <?php $str = str_replace(array("/r/n", "/r", "/n"), '', $str); ?> // 2)使用正则表达式替换 <?php $str = preg_replace('//s*/', '', $str); ?> // 3)使用PHP系统常量【推荐】 $str = str_replace(PHP_EOL, '', $str); 省市区正则匹配 preg_match('/(.*?(省|自治区|北京市|天津市))+(.*?(市|自治州|地区|区划|县))+(.*?(区|县|镇|乡|街道))/', $address, $matches);    获得省市区数组 $address = ‘广东省深圳市南山区’; preg_match('/(.*?(省|自治区|北京市|天津市))/', $address, $matches); if (count($matches) > 1) { $province = $matches[count($matches) - 2]; $address = str_replace(

PHP 基础复习

微笑、不失礼 提交于 2020-02-09 17:35:56
目录: ——数组 ——函数 ——字符串操作 ——面向对象特征 ——正则表达式 ——cookies 一.数组 PHP 中的数组分为索引数组和关联数组 索引数组初始化和输出 $a=array("abc","def","ghi"); print_r($a); 赋值方式: $a=array("a","b","c"); $a[0]=a; $a=array('0'=>'a','1'=>'b','2'=>'c'); 取值方式: $a0=$a['0']; for循环取值: for($i=0;$i<3;$i++){ echo 'a'.$i.'='.$a[$i]; } foreach循环取值: foreach($a as $k=>$v){ each 'a'.$key.'='.$v; } 关联数组的初始化和输出 <?PHP $fruit=array('apple'=>"APPLE",'banana'=>"BANANA",'pineapple'=>"APINEAPPLE"); print_r($fruit); 输出结果:Array ( [apple] => APPLE [banana] => BANANA [pineapple] => APINEAPPLE ) 赋值方式: $furit=array('apple'=>'APPLE'); $furit['apple']='APPLE'; 取值方式: