在PHP中的正则表达式验证
验证是处处为站长的共同关注。如果有人进入形式的信息,您需要验证它!但是,这样做最简单的方法是什么?
嗯,处理大量的文本模式,需要遵循时,我总是转向正则表达式。正则表达式是你定义一个模式的一种方式。 虽然我不会教你的Regex,我会告诉正则表达式在PHP。PHP主要使用了Perl的regex的味道。这就是为什么要执行的功能在PHP正则表达式preg_match。执行Perl的正则表达式匹配,怎么做呢?无论如何,有某些修饰符,可以添加到PHP中的格局,影响它如何执行。 例如,“我”,使得它不区分大小写。我不得不这样做,电子邮件地址模式,因为它缩短假设您使用区分大小写的正则表达式模式的可读性。然后,有“米”修饰符将治疗一个多行的主题,实际上多个内衬。否则将被忽略,换行符(N)和锚点(^和$)将假定你的意思是整个主题的开头和结尾。“S”是有用的,如果你经常使用正则表达式的模式,不以^开始并没有一致的起始字符。 为了确定,如果该用户名,密码和验证密码是正确的,我以为只有字母数字字符是允许的。因此,寻找一切可能是一个潜在的错误的字符,而不是我是不是字母的字符搜索。这是由在字符类的字符^ [:^ A-ZA-Z0-9]。然后,后来,如果有一个比赛,我知道有一个在外地的无效字符。 同时请记住,有元字符,需要在正则表达式转义。我这个建议preg_quote 电子邮件和URL值是比较困难的,特别是因为这些标准是很难界定的。例如,在常规expressions.info,相当冗长的辩论已经到电子邮件的regex。从技术上来说,一个有效的电子邮件地址可以包含单引号。对于大多数的电子邮件地址,列出将是有效的。URL包含了类似的问题。众多的顶级域名,和一个列表是很难聚集。人也有一种倾向,只是说“software8.co”代替“http://software8.co”。也有情况下顶级域名中包含一个国家的价值,以及,像“google.co.uk”, 我不建议尝试,包括尽可能多的,你可以。如果您尝试,以满足大家,你最终验证上花费这么多时间,它已不再是可行的。验证用户输入,在你的代码是什么权宜之计,而不是根据是什么,他们将进入。 此外,regex是不是每一个问题的解决(虽然它是为大多数)。如果您要验证的东西,有许多例外或极其复杂,它成为一件苦差事。我什至不能想象试图日期和时间格式。中午12时或午夜吗?是12:60有效吗?约17:00怎么样?你需要上午和下午要输入吗?3意味着同为3:00?这些东西都是最好留给人类或其他一些方法,你可以制定。
<?php$un = $_POST["user"];$pw = $_POST["pass"];$pw2 = $_POST["pass2"];$em = $_POST["email"];$url = $_POST["url"];$info = array($un, $pw, $pw2, $em, $url);foreach ($info as $idx => $unit) { switch ($idx) { case 4:$rgx = "/^((ftp|http|https)://(w+:{0,1}w*@)?)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?$/"; break; case 3: $rgx = "/^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i"; break; case 2: //read below $rgx = "/[^A-Za-z0-9]+/"; break; case 1: //read below $rgx = "/[^A-Za-z0-9]+/"; break; case 0: //if characters are NOT normal $rgx = "/[^A-Za-z0-9]+/"; break; default: echo "???"; die("$unit ?"); break; } $n = preg_match($rgx, $unit, $matches); if ( ($idx == 0) || ($idx == 1) || ($idx == 2) ){ if ($n) { echo "Bad Characters in $unit; Alphanumeric only<br />"; } } else { if ($n == 0) { echo "Incorrect Format in $unit; Enter Valid Info<br />"; } }}?>

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

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

phpisusedforsenderemailsduetoitsbuilt-inmail()函數andsupportivelibrariesLikePhpMailerAndSwiftMailer.1)usethemail()functionForbasiceMails,butithasimails.2)butithasimail.2)

PHP性能瓶颈可以通过以下步骤解决:1)使用Xdebug或Blackfire进行性能分析,找出问题所在;2)优化数据库查询并使用缓存,如APCu;3)使用array_filter等高效函数优化数组操作;4)配置OPcache进行字节码缓存;5)优化前端,如减少HTTP请求和优化图片;6)持续监控和优化性能。通过这些方法,可以显著提升PHP应用的性能。

依賴性注射(DI)InphpisadesignPatternthatManages和ReducesClassDeptions,增強量強制性,可驗證性和MATIALWINABIOS.ItallowSpasspassingDepentenciesLikEdenciesLikedAbaseConnectionStoclasseconnectionStoclasseSasasasasareTers,interitationAseTestingEaseTestingEaseTestingEaseTestingEasingAndScalability。

cachingimprovesphpermenceByStorcyResultSofComputationsorqucrouctationsorquctationsorquickretrieval,reducingServerLoadAndenHancingResponsetimes.feftectivestrategiesinclude:1)opcodecaching,whereStoresCompiledSinmememorytssinmemorytoskipcompliation; 2)datacaching datacachingsingMemccachingmcachingmcachings


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3漢化版
中文版,非常好用

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具