preg_match

wordpress纯代码不用插件实现首页摘要自动截取样式

匆匆过客 提交于 2020-04-07 23:13:03
带图片输出 <?php if(preg_match('/<!--more-->/',$this->content)||mb_strlen($this->content, 'utf-8') < 270) { $this->content('阅读全文...'); } else { $c=mb_substr($this->content, 0, 270, 'utf-8'); echo $c.'...'; echo '</br><p class="more"><a href="',$this->permalink(),'" title="',$this->title(),'">阅读全文...</a></p>'; } ?> 不带图片输出: <?php if(preg_match('/<!--more-->/',$this->content)||mb_strlen($this->content, 'utf-8') < 270) { $this->content('阅读全文...'); } else { $c=mb_substr($this->content, 0, 270, 'utf-8'); $c=preg_replace("/<[img|IMG].*?src=[\'\"](.*?(?:[\.gif|\.jpg|\.jpeg|\.png|\.tiff|\.bmp]))[\'|\"].*?[\

int preg_match( string pattern

假如想象 提交于 2020-03-30 13:04:39
preg_match -- 进行 正则表达式 匹配。并且只匹配一次,注意与 preg_match _all区别。 int preg_match ( string pattern, string subject [, array matches [, int flags ]] ) 在 subjec t 字符串中搜索与 pattern 给出的 正则表达式 相匹配的内容。 如果提供了 matches ,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本, $matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。 flags 可以是下列标记: PREG_OFFSET_CAPTURE 如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串 偏移量 。注意这改变了返回的 数组 的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。本标记自PHP 4.3.0 起可用。 flags 参数来自 PHP 4.3.0 起可用。 preg_match() 返回 pattern 所匹配的 次数 。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。如果出错 preg_match() 返回FALS E 如果你仅仅想要检查一个字符串是否包含另外一个字符串, 不要使用preg_match

PHP 正则判断中文 UTF-8 & GBK

半城伤御伤魂 提交于 2020-03-30 09:45:21
UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的。比如: var str = "php编程"; if (/^[/u4e00-/u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else{ alert("该字符串不全部是中文"); } php中,是用/x表示十六进制数据的。于是,变换成如下的代码: $str = "php编程"; if (preg_match("/^[/x4e00-/x9fa5]+$/",$str)) { print("该字符串全部是中文"); } else { print("该字符串不全部是中文"); } 貌似不报错了,判断的结果也正确,不过把$str换成“编程”两字,结果却还是显示“该字符串不全部是中文”,看来这样的判断还是不够准确。重要:查阅了<精通正则表达式>发现,对于[/x4e00-/x9fa5]这块东西,自己做一个强化的解释 php的正则中, [/x4e00-/x9fa5],其实就是 字符和字符组的概念, /x{hex},表达一个16进制数, 需要注意的是hex 可以是1-2位的,也可以是4位的,但是如果是4位的必须加上大括号, 同时,如果是大于x{FF}的hex,必须和u 修饰符连用,不然会非法出错 网上只能找到匹配全角字符的正则: ^[/x80-/xff]*^/ ,这里可以不加大括号 [

php小经验:解析preg_match与preg_match_all 函数

别说谁变了你拦得住时间么 提交于 2020-03-16 03:07:21
php小经验:解析preg_match与preg_match_all 函数 本篇文章是对php中的preg_match函数与preg_match_all函数进行了详细的分析介绍,需要的朋友参考下 正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: •正则匹配:根据正则表达式匹配相应的内容 •正则替换:根据正则表达式匹配内容并替换 •正则分割:根据正则表达式分割字符串 在 PHP 中有两类正则表达式函数,一类是 Perl 兼容正则表达式函数,一类是 POSIX 扩展正则表达式函数。二者差别不大,而且推荐使用Perl 兼容正则表达式函数,因此下文都是以 Perl 兼容正则表达式函数为例子说明。 定界符 Perl 兼容模式的正则表达式函数,其正则表达式需要写在定界符中。任何不是字母、数字或反斜线()的字符都可以作为定界符,通常我们使用 / 作为定界符。具体使用见下面的例子。 提示 尽管正则表达式功能非常强大,但如果用普通字符串处理函数能完成的,就尽量不要用正则表达式函数,因为正则表达式效率会低得多。关于普通字符串处理函数。 preg_match() preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。 语法: int preg_match( string pattern, string subject [, array

buuctf web [BJDCTF2020]EzPHP

大兔子大兔子 提交于 2020-03-12 12:12:01
( 出题人的博客,有详细步骤 ) 进入后是这样的 查看源代码发现注释 base32解码得到1nD3x.php,发现是源码 <?php highlight_file(__FILE__); error_reporting(0); $file = "1nD3x.php"; $shana = $_GET['shana']; $passwd = $_GET['passwd']; $arg = ''; $code = ''; echo "<br /><font color=red><B>This is a very simple challenge and if you solve it I will give you a flag. Good Luck!</B><br></font>"; if($_SERVER) { if ( preg_match('/shana|debu|aqua|cute|arg|code|flag|system|exec|passwd|ass|eval|sort|shell|ob|start|mail|\$|sou|show|cont|high|reverse|flip|rand|scan|chr|local|sess|id|source|arra|head|light|read|inc|info|bin|hex|oct|echo|print|pi|\.|\"|\'

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-22 14:22:21
正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,php等等,我今天就把我对正则表达式的理解跟大家唠唠,不当之处,请多多指教! 需要知道的术语——下面的术语你知道多少? Δ 定界符 Δ 字符域 Δ 修饰符 Δ 限定符 Δ 脱字符 Δ 通配符(正向预查,反向预查) Δ 反向引用 Δ 惰性匹配 Δ 注释 Δ 零字符宽 定位 我们什么时候使用正则表达式呢?不是所有的字符操作都用正则就好了,php在某些方面用正则反而影响效率。当我们遇到复杂文本数据的解析时候,用正则是比较好的选择。 优点 正则表达式在处理复杂字符操作的时候,可以提高工作效率,也在一定程度节省你的代码量。 缺点 我们在使用正则表达式的时候,复杂的正则表达式会加大代码的复杂度,让人很难理解。所以我们有的时候需要在正则表达式内部添加注释。 通用模式 ¤ 定界符,通常使用 "/"做为定界符开始和结束,也可以使用"#"。   什么时候使用"#"呢?一般是在你的字符串中有很多"/"字符的时候,因为正则的时候这种字符需要转义,比如uri。 使用"/"定界符的代码如下. ? $regex = '/^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$/i' ; $str = 'http://www.youku.com/show

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异或计算绕过preg_match()

僤鯓⒐⒋嵵緔 提交于 2020-02-10 09:10:51
原理 以制作免杀马为例: 在制作免杀马的过程,根据php的语言特性对字符进行!运算会将字符类型转为bool类型,而bool类型遇到运算符号时,true会自动转为数字1,false会自动转为数字0,如果将bool类型进行计算,并使用chr()函数转为字符,使用"."进行连接,便可以绕过preg_match匹配。 详情了解php不同于其他语言部分 但是很多的preg_match会过滤掉".",所以需要使用异或运算进行绕过,很多的免杀马都是这样制作的。php对字符进行异或运算是先将字符转换成ASCII码然后进行异或运算,并且php能直接对一串字符串进行异或运算,例如"123"^"abc"是"1"与"a"进行异或然后"2"与"b"进行异或,以此类推,在异或结束后就获得了想要的字符串。 注意点:进行异或运算时要将数字转换成字符形式,如果数字(int)和字符异或的话,结果只会是数字,例如1^"a"=1,"a"^2=2,将数字转换成字符串可以使用trim()函数。 拓展: php特性use of undefined constant,会将没有引号的字符都自动视为字符串,ASCII码大于0x7F的都会被当作字符串,由此可知可以简化异或过程,任何字符与0xff异或都会取相反,这样就能减少运算量了。 以GET或POST传入字符绕preg_match为例: php的eval()函数在执行时如果内部有类似

PHP preg_match正则表达式

本秂侑毒 提交于 2020-02-07 06:56:25
行定位符 ^表示开始 $表示结束 preg_match(模式,待搜索的字符串,$matches) 其中matches为可选参数,一旦匹配上,可以返回匹配结果 举个例子: $pattern = '/#\S+/'; \S表示任何非空白字符(由于例子中使用的是中文所以这里不能使用\w) $mystr = "(r'/loadcolspage',loadcolspage),#列加工器"; preg_match($pattern,$mystr,$matches); var_dump($matches); 打印结果: array(1) { [0]=> string(13) "#列加工器" } 来源: https://www.cnblogs.com/saintdingspage/p/10929880.html