注:文章出自李炎恢PHP视频教程,本文仅限交流使用,不得用于商业用途,否则后果自负。
学习要点:
1.正则表达式语法(Perl 风格)
2.正则表达式中的元素
3.Perl 风格函数
处理字符串时,有很多较为复杂的字符串用普通的字符串处理函数无法干净的完成。比
如说,可能需要验证一个Email 地址是否合法,为此需要查看许多不容易检查的规则。这正
是正则表达式的用武之地。正则表达式是功能强大而简明的字符组,其中可以包含大量的逻
辑,特别值得一提的是正则表达式相当简短。
一.正则表达式语法(Perl风格)
Perl 一直被认为是最伟大的解析语言之一,它提供了一种全面的正则表达式,即使是最
复杂的字符串模式,也可以用这种正则表达式语言搜索和替换。PHP 开发人员认识到,与
其重新发明正则表达式,不如让PHP 用户直接使用声名赫赫的Perl 正则表达式语言,即Perl
风格的函数。
模式规则:/php/ 在字符串前后加上两条斜杠即可。
匹配函数:preg_match()函数在字符串中搜索模式,如果存在则返回true,否则返回false。
<?<span php </span><span preg_match</span>('/php/','php'<span ); </span>?>
二.正则表达式中的元素
正则表达式中包含三种元素分别为:量词、元字符、修饰符
量词
元字符
修饰符
三.Perl风格函数
PHP 为使用Perl 兼容的正则表达式搜索字符串提供了7 个函数,包括:preg_grep()、
preg_match()、preg_match_all()、preg_auote()、preg_replace()、preg_replace_callback()和
preg_split()。
搜索字符串:preg_grep()函数搜索数组中的所有元素,返回由与某个模式匹配的所有元
素组成的数组。
<?<span php </span><span $language</span> = <span array</span>('php','asp','jsp','python','ruby'<span ); </span><span print_r</span>(<span preg_grep</span>('/p$/',<span $language</span><span )); </span>?>
搜索模式:preg_match()函数在字符串中搜索模式,如果存在则返回true,否则返回false。
<?<span php </span><span echo</span> <span preg_match</span>('/php[1-6]/','php5'<span ); </span>?>
电子邮件验证小案例(分组应用)
<?<span php </span><span $mode</span> = '/([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})/'<span ; </span><span $string</span> = 'yc60.com@gmail.com'<span ; </span><span echo</span> <span preg_match</span>(<span $mode</span>,<span $string</span><span ); </span>?>
匹配模式的所有出现:preg_match_all()函数在字符串中匹配模式的所有出现,然后将所
有匹配到的全部放入数组。
<?<span php </span><span preg_match_all</span>('/php[1-6]/','php5sdfphp4sdflljkphp3sdlfjphp2',<span $out</span><span ); </span><span print_r</span>(<span $out</span><span ); </span>?>
定界特殊的正则表达式:preg_quote()在每个对于正则表达式语法而言有特殊含义的字
符前插入一个反斜线。这些特殊字符包含:$ ^ * () + = {} [] | \\ : 。
<?<span php </span><span echo</span> <span preg_quote</span>('PHP的价格是:$150'<span ); </span>?>
替换模式的所有出现:preg_replace()函数搜索到所有匹配,然后替换成想要的字符串返
回出来。
<?<span php </span><span echo</span> <span preg_replace</span>('/php[1-6]/','python','This is a php5,This is a php4'<span ); </span>?>
ubb 小案例:贪婪问题+分组使用()
<?<span php </span><span $mode</span> = '/\[b\](.*)\[\/b\]/U'<span ; </span><span $replace</span> = '<strong>\1</strong>'<span ; </span><span $string</span> = 'This is a [b]php5[/b],This is a [b]php4[/b]'<span ; </span><span echo</span> <span preg_replace</span>(<span $mode</span>,<span $replace</span>,<span $string</span><span ); </span>?>
以不区分大小写的方式将字符串划分为不同的元素:preg_split()用来分割不同的元素。
<?<span php </span><span print_r</span>(<span preg_split</span>('/[\.@]/','yc60.com@gmail.com'<span )); </span>?>
注:目前为PHP 使用POSIX 风格的正则表达式搜索字符串提供了7 个函数,包括:ereg()、
ereg_replace()、eregi()、eregi_replace()、split()、spliti()和sql_regcase()。
PS:和Perl 风格基本相同,可以参考手册自行学习。

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 English version
Recommended: Win version, supports code prompts!

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver CS6
Visual web development tools

Atom editor mac version download
The most popular open source editor
