首页 > 后端开发 > 正文

PHP正则表达式的使用技巧 最新PHP面试100题(一)

2025-02-07 13:28:21 | 我爱编程网

PHP正则表达式的使用技巧 最新PHP面试100题(一)相关内容,小编在这里做了整理,希望能对大家有所帮助,关于PHP正则表达式的使用技巧 最新PHP面试100题(一)信息,一起来了解一下吧!

本文目录一览:

PHP正则表达式的使用技巧 最新PHP面试100题(一)

PHP正则表达式的使用技巧

PHP正则表达式的定义

用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找及替换操作

PHP中的正则函数

PHP中有两套正则函数 两者功能差不多 分别为

一套是由PCRE(Perl Compatible Regular Expression)库提供的 使用 preg_ 为前缀命名的函数

一套由POSIX(Portable Operating System Interface of Unix )扩展提供的 使用以 ereg_ 为前缀命名的函数 (POSIX的正则函数库 自PHP 以后 就不在推荐使用 从PHP 以后 就将被移除)

由于POSIX正则即将推出历史舞台 并且PCRE和perl的形式差不多 更利于我们在perl和php之间切换 所以这里重点介绍PCRE正则的使用

PCRE正则表达式

PCRE全称为Perl Compatible Regular Expression 意思是Perl兼容正则表达式

在PCRE中 通常将模式表达式(即正则表达式)包含在两个反斜线 / 之间 如 /apple/

正则中重要的几个概念有 元字符 转义 模式单元(重复) 反义 引用和断言 这些概念都可以在文章[ ]中轻松的理解和掌握

常用的元字符(Meta character)

元字符     说明

/A       匹配字符串串首的原子

/Z       匹配字符串串尾的原子

/b       匹配单词的边界     //bis/   匹配头为is的字符串   /is/b/   匹配尾为is的字符串   //bis/b/ 定界

/B       匹配除单词边界之外的任意字符   //Bis/   匹配单词 This 中的 is

/d     匹配一个数字 等价于[ ] 我爱编程网

/D     匹配除数字以外任何一个字符 等价于[^ ]

/w     匹配一个英文字母 数字或下划线 等价于[ a zA Z_]

/W     匹配除英文字母 数字和下划线以外任何一个字符 等价于[^ a zA Z_]

/s     匹配一个空白字符 等价于[/f/t/v]

/S     匹配除空白字符以外任何一个字符 等价于[^/f/t/v]

/f     匹配一个换页符等价于 /x c 或 /cL

匹配一个换行符 等价于 /x a 或 /cJ

匹配一个回车符等价于/x d 或 /cM

/t     匹配一个制表符 等价于 /x /或/cl

/v     匹配一个垂直制表符 等价于/x b或/ck

/oNN   匹配一个八进制数字

/xNN   匹配一个十六进制数字

/cC    匹配一个控制字符

模式修正符(Pattern Modifiers)

模式修正符在忽略大小写 匹配多行中使用特别多 掌握了这一个修正符 往往能解决我们遇到的很多问题

i     -可同时匹配大小写字母

M     -将字符串视为多行

S     -将字符串视为单行 换行符做普通字符看待 使 匹配任何字符

X     -模式中的空白忽略不计

U     -匹配到最近的字符串

e     -将替换的字符串作为表达使用

格式 /apple/i匹配 apple 或 Apple 等 忽略大小写      /i

PCRE的模式单元

// 提取第一位的属性

/^/d{ } ([/W])/d{ }// /d{ }$匹配 / / 等字符串 但上述正则表达式不匹配 / 的格式 这是因为模式 [/W] 的结果 / 已经被存储 下个位置 / 引用时 其匹配模式也是字符 /

当不需要存储匹配结果时使用非存储模式单元 (? )

例如/(?:a|b|c)(D|E|F)// g/ 将匹配 aEEg 在一些正则表达式中 使用非存储模式单元是必要的 否则 需要改变其后引用的顺序 上例还可以写成/(a|b|c)(C|E|F)/ g/

PCRE正则表达式函数

以下为引用的内容

preg_match()和preg_match_all()   preg_quote()   preg_split()   preg_grep()   preg_replace()

函数的具体使用 我们可以通过PHP手册来找到 下面分享一些平时积累的正则表达式

匹配action属性

以下为引用的内容

$str = ;       $match = ;       preg_match_all( //s+action=/ (?!)( *?)/ /s/ $str $match);       print_r($match);

在正则中使用回调函数

以下为引用的内容

/**      * replace some string by callback function      *      */    function callback_replace() {         $url = ;         $str = ;         $str = preg_replace ( /(?<=/saction=/ )(?!)( *?)(?=/ /s)/e search(/$url // ) $str );                  echo $str;     }          function search($url $match){         return $url / $match;     }

带断言的正则匹配

以下为引用的内容

$match = ;      $str = xxxxxx cn bold font  paragraph text

;      preg_match_all ( /(?<=<(/w{ })>) *(?=</// >)/ $str $match );      echo 匹配没有属性的HTML标签中的内容 ;      print_r ( $match );

替换HTML源码中的地址

以下为引用的内容

$form_ = preg_replace ( /(?<=/saction=/ |/ssrc=/ |/s)(?!|javascript)( *?)(?=/ /s)/e add_url(/$url / // / ) $form_ );

lishixinzhi/Article/program/PHP/201311/21027

PHP正则表达式的使用技巧 最新PHP面试100题(一)

2020最新PHP面试100题(一)

一、面向对象是程序设计的一种方式,它有助于提高代码的重用性,使代码结构清晰。主要特征包括封装、继承和多态。

二、Session和Cookie的区别在于,禁用Cookie后Session无法正常工作。Session的缺点是保存在服务器端,每次读取都需要从服务器进行,这会消耗服务器资源。Session信息默认保存在服务器文件或数据库中,具体路径由php配置文件的session.save_path参数指定。Session文件是公开的。

三、HTTP状态码302表示临时重定向成功,请求的内容已被转移到新位置;403表示禁止访问;500表示服务器内部错误,401代表未授权。

四、在Linux中,创建压缩包使用命令:`tar.gz`、`bz2`、`gzip`(仅压缩文件,不保留原始文件)、`zip`(对目录)。

五、数据类型包括整数(int)、定长字符(char)、变长字符(varchar)、日期时间型(datetime)、文本型(text)。`varchar`与`char`的主要区别在于`char`是固定长度的字符类型,分配多少空间就占用多长空间;而`varchar`是可变长度的字符类型,内容有多大就占用多大的空间,这能有效节省空间。然而,由于`varchar`类型是可变的,因此在数据长度改变时,服务器需要进行额外操作,因此效率低于`char`类型。

六、MyISAM和InnoDB的基本区别在于,MyISAM不支持事务、表锁,容易产生碎片,需要定期优化,读写速度较快;而InnoDB支持事务、行锁,具有崩溃恢复能力,读写速度略慢。

七、不使用Cookie向客户端发送一个Cookie的方法是,在`session_start()`开启时生成一个常量SID,当Cookie开启时SID为空,关闭时SID中存储了PHPSESSID的值。通过在URL后添加SID参数来传递SESSIONID值,从而使客户端页面可以使用SESSION中的值。当客户端开启Cookie和服务器端开启Session时,第一次请求浏览器会收到存储SESSIONID的Cookie。第二次请求时,浏览器会将已存在的SESSIONID传递给服务器。

八、`isset()`和`empty()`的区别在于,`isset()`判断变量是否存在,可以传递多个变量,若其中任一变量不存在则返回假;而`empty()`判断变量是否为空为假,仅可传递一个变量,如果为空为假则返回真。

九、在页面之间传递变量的方法包括GET、POST、COOKIE、SESSION以及隐藏表单。

十、编写匹配URL的正则表达式。

十一、常见的排序算法有冒泡排序、快速排序、简单选择排序、堆排序、直接插入排序、希尔排序、合并排序。以下是对冒泡排序算法的描述:该算法通过多遍扫描待排序序列,将相邻的次序不正确的元素进行交换,使得关键字较小的元素逐渐向前面移动,类似于气泡在水中的上升过程,故称为冒泡排序。

十二、在PHP中,传值与传引用的区别在于,传值将参数复制到函数内部,函数内部对参数的操作不会影响到外部变量;而传引用则是传递参数的引用,函数内部的操作会直接修改外部变量。选择传值还是传引用应根据具体需求:当不需要在函数内部修改外部变量时,使用传值;当需要在函数内部修改外部变量时,使用传引用。

十三、`error_reporting`函数用于设置PHP的报错级别并返回当前级别的设置。

十四、使用PHP描述快速排序算法,对象可以是一个数组。快速排序使用分治策略,分为以下步骤:选择一个基准元素,将序列分为两个子序列,一个包含小于基准的元素,另一个包含大于基准的元素。递归地对子序列进行排序。

十五、使用PHP描述顺序查找和二分查找算法,顺序查找必须考虑效率。对于一个有序数组,二分查找是更高效的方法。

十六、编写一个二维数组排序算法函数,可以使用PHP内置函数`array_multisort()`实现通用排序。

十七、以空格作为间隔拆分字符串“Apple Orange Banana Strawberry”,组成数组`$fruit`。

十八、编写正则表达式验证用户输入的字符串`$string`是否只包含大于0的数字和英文逗号。

十九、在服务器创建文件`fruit.dat`,将数组写入文件,然后编写从文件读取并还原数组的程序。

二十、实现使用单例模式创建`mysqli`数据库链接的单例对象。

二十一、在Windows平台下Apache HTTP Server启动失败时,排查思路是检查80端口是否被占用,若被占用,则停止占用80端口的服务,再启动Apache服务器。

二十二、PHP session扩展默认将session数据存储在`D) File System`。

二十三、正确的自动加载函数声明是`C) function __autoload($class_name)`。

二十四、PHP程序使用utf-8编码时,程序输出结果为`B) 13(gbk)`。

二十五、了解PHP数组相关函数,如`array()`、`implode()`、`explode()`、`count()`、`sort()`等。

二十六、PHP读取文件内容的方法和函数包括:`fopen()`打开文件并读取,`fread()`读取文件内容,`file_get_contents()`一次读取整个文件内容。

二十七、在`$str`值为`0`、`'0'`、`false`、`null`、`""`时,输入111。

二十八、了解PHP技术如smarty模板引擎。

二十九、熟悉的PHP论坛系统有`Discuz`。

三十、熟悉的PHP商城系统有`Ecshop`。

三十一、熟悉的PHP开发框架有`Brophp`、`thinkphp`。

三十二、了解缓存技术,如Redis、Memcached、APC等。

三十三、了解设计模式,包括工厂模式、策略模式、单元素模式、观察者模式、命令链模式等。

三十四、了解代码管理知识,常用版本控制软件有`SVN`。

php网站报错PHP Fatal error:Uncaught ArgumentCountError: Too few arguments to function mysql_select

我爱编程网(https://www.52biancheng.com)小编还为大家带来php网站报错PHP Fatal error:Uncaught ArgumentCountError: Too few arguments to function mysql_select的相关内容。

面对网站开发中的PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function mysql_select错误,我们首先要明白错误的具体含义。这个错误提示表明,我们在调用mysql_select函数时,传递的参数数量不足,而函数定义要求的参数数量却高于实际传递的数量。这可能是由于函数调用时缺少必要的参数,或者参数的传递顺序错误所导致的。

为了解决这个问题,我们需要仔细检查mysql_select函数的调用位置。在代码中查找mysql_select函数的调用,确保所有必需的参数都已正确传递。通常,函数调用的参数应该与函数定义中指定的一致,包括参数的数量和类型。同时,我们也需要确保在调用函数前,已经正确地定义并初始化了所有必要的变量。

值得注意的是,错误提示中的“Too few arguments”意味着传递的参数少于函数定义中指定的数量。因此,我们需要逐一检查每个参数,确保它们都已正确赋值。如果函数定义中有默认参数,那么缺失的参数可能会使用默认值,但这并不意味着代码就一定能够正常运行。有时,错误可能隐藏在其他地方,因此,我们需要全面检查代码,确保所有部分都符合预期。

在修复了参数传递问题后,我们还需要进一步检查数据库连接和查询语句。确保数据库连接已经成功建立,并且查询语句正确无误。如果数据库连接存在问题,可能会导致函数无法正常执行。此外,我们还需要确保查询语句中的表名、字段名等都正确无误,避免因拼写错误或其他语法错误导致的问题。

最后,为了确保问题得到彻底解决,我们可以尝试使用其他数据库操作函数,如mysqli或PDO,这些函数提供了更强大和灵活的数据库操作功能,并且能够更好地处理错误和异常情况。通过切换到这些替代方案,我们可以避免类似的问题再次发生。

以上就是PHP正则表达式的使用技巧 最新PHP面试100题(一)全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“PHP正则表达式的使用技巧 最新PHP面试100题(一)”相关推荐
php函数技巧 PHP正则表达式的使用技巧
php函数技巧 PHP正则表达式的使用技巧

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2024-09-25 01:08:44
php正则处理函数 PHP正则表达式的使用技巧
php正则处理函数 PHP正则表达式的使用技巧

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2025-02-03 18:00:51
php的strcm函数 PHP正则表达式的使用技巧
php的strcm函数 PHP正则表达式的使用技巧

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2024-10-16 04:35:15
php的ereg函数 PHP正则表达式的使用技巧
php的ereg函数 PHP正则表达式的使用技巧

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2024-11-07 08:41:43
php正则处理函数分析 PHP正则表达式的使用技巧
php正则处理函数分析 PHP正则表达式的使用技巧

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2024-08-22 23:27:59
php中function函数的用法(PHP正则表达式的使用技巧)
php中function函数的用法(PHP正则表达式的使用技巧)

php中function函数的用法在PHP中,function是用于定义和声明函数的关键字。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行。通过使用函数,可以将代码模块化,提高代码的可读性、可维护性和重用性。在PHP中,function关键字用于定义和声明函数。函数是一段可重复使用的代码块,它封装了一系列操作或逻辑,并可以通过函数名进行调用和执行,

2025-02-24 10:25:47
PHP正则表达式的使用技巧 php5.3提示Function ereg() is deprecated Error问题解决方法
PHP正则表达式的使用技巧 php5.3提示Function ereg() is deprecated Error问题解决方法

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2024-10-14 11:15:03
PHP正则表达式的使用技巧 PHP网络编程标准教程的目录
PHP正则表达式的使用技巧 PHP网络编程标准教程的目录

PHP正则表达式的使用技巧PHP正则表达式的定义用于描述字符排列和匹配模式的一种语法规则它主要用于字符串的模式分割匹配查找及替换操作PHP中的正则函数PHP中有两套正则函数两者功能差不多分别为一套是由PCRE(PerlCompatibleRegularExpression)库提供的使用preg_为前缀命名的函数一套由POSIX(PortableOperatin

2024-11-01 21:00:37