15 个实用的 PHP 正则表达式
对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参考下。在这篇文章里,我已经编写了15个超有用 的正则表达式,WEB开发人员都应该将它收藏到自己的工具包。
验证域名检验一个字符串是否是个有效域名
<ol class="dp-j"><li class="alt"><span><span>$url = </span><span class="string">"http://komunitasweb.com/"</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (preg_match(</span><span class="string">'/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i'</span><span>, $url)) { </span></span></li><li class="alt"><span> echo <span class="string">"Your url is ok."</span><span>; </span></span></li><li><span>} <span class="keyword">else</span><span> { </span></span></li><li class="alt"><span> echo <span class="string">"Wrong url."</span><span>; </span></span></li><li><span>} </span></li></ol>
从一个字符串中 突出某个单词
这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果
<ol class="dp-j"><li class="alt"><span><span>$text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or </span></span></li><li><span> </span></li><li class="alt"><span>regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; </span></li><li><span>$text = preg_replace(<span class="string">"/b(regex)b/i"</span><span>, </span><span class="string">'<span style="background:#5fc9f6">1</span>'</span><span>, $text); </span></span></li><li class="alt"><span>echo $text; </span></li></ol>
突出查询结果在你的 WordPress 博客里就像刚才我说的,上面的那段代码可以很方便的搜索出结果,而这里是一个更好的方式去执行搜索在某个WordPress的博客上打开你的文件 search.php ,然后找到 方法 the_title() 然后用下面代码替换掉它
<ol class="dp-j"><li class="alt"><span><span>echo $title; </span></span></li><li><span> </span></li><li class="alt"><span>Now, just before the modified line, add <span class="keyword">this</span><span> code: </span></span></li><li><span> </span></li><li class="alt"><span><php </span></li><li><span> $title = get_the_title(); </span></li><li class="alt"><span> $keys= explode(<span class="string">" "</span><span>,$s); </span></span></li><li><span> $title = preg_replace(<span class="string">'/('</span><span>.implode(</span><span class="string">'|'</span><span>, $keys) .</span><span class="string">')/iu'</span><span>, </span></span></li><li class="alt"><span> <span class="string">'<strong>\0</strong>'</span><span>, </span></span></li><li><span> $title); </span></li><li class="alt"><span>> </span></li><li><span> </span></li><li class="alt"><span>Save the search.php file and open style.css. Append the following line to it: </span></li><li><span> </span></li><li class="alt"><span>strong.search-excerpt { background: yellow; } <br /></span></li></ol>
从HTML文档中获得全部图片
如果你曾经希望去获得某个网页上的全部图片,这段代码就是你需要的,你可以轻松的建立一个图片下载机器人
<ol class="dp-j"><li class="alt"><span><span>$images = array(); </span></span></li><li><span>preg_match_all(<span class="string">'/(img|src)=("|'</span><span>)[^"</span><span class="string">'>]+/i'</span><span>, $data, $media); </span></span></li><li class="alt"><span>unset($data); </span></li><li><span>$data=preg_replace(<span class="string">'/(img|src)("|'</span><span>|="|=</span><span class="string">')(.*)/i'</span><span>,</span><span class="string">"$3"</span><span>,$media[</span><span class="number">0</span><span>]); </span></span></li><li class="alt"><span>foreach($data as $url) </span></li><li><span>{ </span></li><li class="alt"><span> $info = pathinfo($url); </span></li><li><span> <span class="keyword">if</span><span> (isset($info[</span><span class="string">'extension'</span><span>])) </span></span></li><li class="alt"><span> { </span></li><li><span> <span class="keyword">if</span><span> (($info[</span><span class="string">'extension'</span><span>] == </span><span class="string">'jpg'</span><span>) || </span></span></li><li class="alt"><span> ($info[<span class="string">'extension'</span><span>] == </span><span class="string">'jpeg'</span><span>) || </span></span></li><li><span> ($info[<span class="string">'extension'</span><span>] == </span><span class="string">'gif'</span><span>) || </span></span></li><li class="alt"><span> ($info[<span class="string">'extension'</span><span>] == </span><span class="string">'png'</span><span>)) </span></span></li><li><span> array_push($images, $url); </span></li><li class="alt"><span> } </span></li><li><span>} </span></li></ol>
删除重复字母
经常重复输入字母? 这个表达式正适合.
<ol class="dp-j"><li class="alt"><span><span>$text = preg_replace(</span><span class="string">"/s(w+s)1/i"</span><span>, </span><span class="string">"$1"</span><span>, $text); </span></span></li></ol>
删除重复的标点
功能同上,但只是面对标点,白白重复的逗号
<ol class="dp-j"><li class="alt"><span><span>$text = preg_replace(</span><span class="string">"/.+/i"</span><span>, </span><span class="string">"."</span><span>, $text); </span></span></li></ol>
匹配一个XML或者HTML标签
这个简单的函数有两个参数:第一个是你要匹配的标签,第二个是包含XML或HTML的变量,再强调下,这个真的很强大
<ol class="dp-j"><li class="alt"><span><span>function get_tag( $tag, $xml ) { </span></span></li><li><span>$tag = preg_quote($tag); </span></li><li class="alt"><span>preg_match_all(<span class="string">'{<'</span><span>.$tag.</span><span class="string">'[^>]*>(.*?)</'</span><span>.$tag.</span><span class="string">'>.'</span><span>}', </span></span></li><li><span> $xml, </span></li><li class="alt"><span> $matches, </span></li><li><span> PREG_PATTERN_ORDER); </span></li><li class="alt"><span> </span></li><li><span><span class="keyword">return</span><span> $matches[</span><span class="number">1</span><span>]; </span></span></li><li class="alt"><span>} </span></li></ol>
匹配具有属性值的XML或者HTML标签
这个功能和上面的非常相似,但是它允许你匹配的标签内部有属性值,例如你可以轻松匹配
<ol class="dp-j"><li class="alt"><span><span>function get_tag( $attr, $value, $xml, $tag=</span><span class="keyword">null</span><span> ) { </span></span></li><li><span><span class="keyword">if</span><span>( is_null($tag) ) </span></span></li><li class="alt"><span> $tag = <span class="string">'\w+'</span><span>; </span></span></li><li><span><span class="keyword">else</span><span> </span></span></li><li class="alt"><span> $tag = preg_quote($tag); </span></li><li><span> </span></li><li class="alt"><span>$attr = preg_quote($attr); </span></li><li><span>$value = preg_quote($value); </span></li><li class="alt"><span> </span></li><li><span>$tag_regex = <span class="string">"/<("</span><span>.$tag.</span><span class="string">")[^>]*$attr\s*=\s*"</span><span>. </span></span></li><li class="alt"><span> <span class="string">"(['\"])$value\\2[^>]*>(.*?)<\/\\1>/"</span><span> </span></span></li><li><span> </span></li><li class="alt"><span>preg_match_all($tag_regex, </span></li><li><span> $xml, </span></li><li class="alt"><span> $matches, </span></li><li><span> PREG_PATTERN_ORDER); </span></li><li class="alt"><span> </span></li><li><span><span class="keyword">return</span><span> $matches[</span><span class="number">3</span><span>]; </span></span></li><li class="alt"><span>} </span></li></ol>
匹配十六进制颜色值
web开发者的另一个有趣的工具,它允许你匹配和验证十六进制颜色值.
<ol class="dp-j"><li class="alt"><span><span>$string = </span><span class="string">"#555555"</span><span>; </span></span></li><li><span><span class="keyword">if</span><span> (preg_match(</span><span class="string">'/^#(?:(?:[a-fd]{3}){1,2})$/i'</span><span>, $string)) { </span></span></li><li class="alt"><span>echo <span class="string">"example 6 successful."</span><span>; </span></span></li><li><span>} </span></li></ol>
查找页面 title
这段代码方便查找和打印 网页
<ol class="dp-j"><li class="alt"><span><span>$fp = fopen(</span><span class="string">"http://www.catswhocode.com/blog"</span><span>,</span><span class="string">"r"</span><span>); </span></span></li><li><span><span class="keyword">while</span><span> (!feof($fp) ){ </span></span></li><li class="alt"><span> $page .= fgets($fp, <span class="number">4096</span><span>); </span></span></li><li><span>} </span></li><li class="alt"><span> </span></li><li><span>$titre = eregi(<span class="string">"<title>(.*)</title>"</span><span>,$page,$regs); </span></span></li><li class="alt"><span>echo $regs[<span class="number">1</span><span>]; </span></span></li><li><span>fclose($fp); </span></li></ol>
解释 Apache 日志
大多数网站使用的都是著名的Apache服务器,如果你的网站也是,那么使用PHP正则表达式解析 apache 服务器日志 怎么样?
<ol class="dp-j"><li class="alt"><span><span class="comment">//Logs: Apache web server</span><span> </span></span></li><li><span><span class="comment">//Successful hits to HTML files only. Useful for counting the number of page views.</span><span> </span></span></li><li class="alt"><span><span class="string">'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$'</span><span> </span></span></li><li><span> </span></li><li class="alt"><span><span class="comment">//Logs: Apache web server</span><span> </span></span></li><li><span><span class="comment">//404 errors only</span><span> </span></span></li><li class="alt"><span><span class="string">'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$'</span><span> </span></span></li></ol>
使用智能引号代替双引号
如果你是一个印刷爱好者,你将喜欢这个允许用智能引号代替双引号的正则表达式,这个正则被WORDPRESS在其内容上使用
<ol class="dp-j"><li class="alt"><span><span>preg_replace(</span><span class="string">'B"b([^"x84x93x94rn]+)b"B'</span><span>, </span><span class="string">'?1?'</span><span>, $text); </span></span></li></ol>
检验密码的复杂度
这个正则表达式将检测输入的内容是否包含6个或更多字母,数字,下划线和连字符. 输入必须包含至少一个大写字母,一个小写字母和一个数字
'A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z'
WordPress: 使用正则获得帖子上的图片
我知道很多人是WORDPRESS的使用者,你可能会喜欢并且愿意使用 那些从帖子的内容检索下来的图像代码。使用这个代码在你的BLOG只需要复制下面代码到你的某个文件里
<ol class="dp-j"><li class="alt"><span><span><php </span><span class="keyword">if</span><span> (have_posts()) : ?> </span></span></li><li><span><php <span class="keyword">while</span><span> (have_posts()) : the_post(); ?> </span></span></li><li class="alt"><span> </span></li><li><span><php </span></li><li class="alt"><span>$szPostContent = $post->post_content; </span></li><li><span>$szSearchPattern = <span class="string">'~<img src="/static/imghwm/default1.png" data-src="smileys/souriant.png" class="lazy" [^ alt="15 Practical PHP Regular Expressions_PHP Tutorial" >]* />~'</span><span>; </span></span></li><li class="alt"><span> </span></li><li><span><span class="comment">// Run preg_match_all to grab all the images and save the results in $aPics</span><span> </span></span></li><li class="alt"><span>preg_match_all( $szSearchPattern, $szPostContent, $aPics ); </span></li><li><span> </span></li><li class="alt"><span><span class="comment">// Check to see if we have at least 1 image</span><span> </span></span></li><li><span>$iNumberOfPics = count($aPics[<span class="number">0</span><span>]); </span></span></li><li class="alt"><span> </span></li><li><span><span class="keyword">if</span><span> ( $iNumberOfPics > </span><span class="number">0</span><span> ) { </span></span></li><li class="alt"><span> <span class="comment">// Now here you would do whatever you need to do with the images</span><span> </span></span></li><li><span> <span class="comment">// For this example the images are just displayed</span><span> </span></span></li><li class="alt"><span> <span class="keyword">for</span><span> ( $i=</span><span class="number">0</span><span>; $i < $iNumberOfPics ; $i++ ) { </span></span></li><li><span> echo $aPics[<span class="number">0</span><span>][$i]; </span></span></li><li class="alt"><span> }; </span></li><li><span>}; </span></li><li class="alt"><span> </span></li><li><span>endwhile; </span></li><li class="alt"><span>endif; </span></li><li><span>> </span></li></ol>
自动生成笑脸图案
被WordPress使用的另一个方法, 这段代码可使你把图像自动更换一个笑脸符号
<ol class="dp-j"><li class="alt"><span><span>$texte=</span><span class="string">'A text with a smiley '</span><span>; </span></span></li><li><span>echo str_replace(<span class="string">':-)'</span><span>,</span><span class="string">'<img src="/static/imghwm/default1.png" data-src="smileys/souriant.png" class="lazy" alt="15 Practical PHP Regular Expressions_PHP Tutorial" >'</span><span>,$texte); </span></span></li></ol>
移除图片的链接
<ol class="dp-j"><li class="alt"><span><span><meta http-equiv=</span><span class="string">"Content-Type"</span><span> content=</span><span class="string">"text/html; charset=utf-8"</span><span> /> </span></span></li><li><span><php </span></li><li class="alt"><span> $str = ' </span></li><li><span> <a href=<span class="string">"http://www.jobbole.com/"</span><span>>jobbole</a>其他字符 </span></span></li><li class="alt"><span> <a href=<span class="string">"http://www.sohu.com/"</span><span>>sohu</a> </span></span></li><li><span> <a href=<span class="string">"http://www.sohu.com/"</span><span>><img src=</span alt="15 Practical PHP Regular Expressions_PHP Tutorial" ><span class="string">"http://www.fashion-press.net/img/news/3176/mot_06.jpg"</span><span> /></a> </span></span></li><li class="alt"><span> <br>'; </span></li><li><span> </span></li><li class="alt"><span> <span class="comment">//echo preg_replace("/(<a.*?>)(<img .*? alt="15 Practical PHP Regular Expressions_PHP Tutorial" >)(<\/a>)/", '$2', $str); </span><span> </span></span></li><li><span> echo preg_replace(<span class="string">"/(<a.*?>)(<img .*? alt="15 Practical PHP Regular Expressions_PHP Tutorial" >)(<\/a>)/"</span><span>, </span><span class="string">'\2'</span><span>, $str); </span></span></li><li class="alt"><span>> </span></li></ol>
以上就是15个超实用的php正则表达式,希望对大家的学习有所帮助。

In PHP, you can use session_status() or session_id() to check whether the session has started. 1) Use the session_status() function. If PHP_SESSION_ACTIVE is returned, the session has been started. 2) Use the session_id() function, if a non-empty string is returned, the session has been started. Both methods can effectively check the session state, and choosing which method to use depends on the PHP version and personal preferences.

Sessionsarevitalinwebapplications,especiallyfore-commerceplatforms.Theymaintainuserdataacrossrequests,crucialforshoppingcarts,authentication,andpersonalization.InFlask,sessionscanbeimplementedusingsimplecodetomanageuserloginsanddatapersistence.

Managing concurrent session access in PHP can be done by the following methods: 1. Use the database to store session data, 2. Use Redis or Memcached, 3. Implement a session locking strategy. These methods help ensure data consistency and improve concurrency performance.

PHPsessionshaveseverallimitations:1)Storageconstraintscanleadtoperformanceissues;2)Securityvulnerabilitieslikesessionfixationattacksexist;3)Scalabilityischallengingduetoserver-specificstorage;4)Sessionexpirationmanagementcanbeproblematic;5)Datapersis

Load balancing affects session management, but can be resolved with session replication, session stickiness, and centralized session storage. 1. Session Replication Copy session data between servers. 2. Session stickiness directs user requests to the same server. 3. Centralized session storage uses independent servers such as Redis to store session data to ensure data sharing.

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

Alternatives to PHP sessions include Cookies, Token-based Authentication, Database-based Sessions, and Redis/Memcached. 1.Cookies manage sessions by storing data on the client, which is simple but low in security. 2.Token-based Authentication uses tokens to verify users, which is highly secure but requires additional logic. 3.Database-basedSessions stores data in the database, which has good scalability but may affect performance. 4. Redis/Memcached uses distributed cache to improve performance and scalability, but requires additional matching

Sessionhijacking refers to an attacker impersonating a user by obtaining the user's sessionID. Prevention methods include: 1) encrypting communication using HTTPS; 2) verifying the source of the sessionID; 3) using a secure sessionID generation algorithm; 4) regularly updating the sessionID.


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

Dreamweaver Mac version
Visual web development tools

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

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Atom editor mac version download
The most popular open source editor

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.
