php 正则替换一些例子小结【彩世界网址】
这段代码可以移除在 PHP 和 CSS 中使用 /* 注释 */ 格式的多多行注释。其中的三个参数分别为正则表达式,要替换成的字符串和要替换的目标字符串(这里要做移除功能,所以是个空白字符串 -> '')。如果你想匹配次级规则,可以使用 $0 代表全部匹配,$1、$2 等,以此类推代表分别的次级规则。
例子3: 正则提取或替换img标记属性
第4行:将 href="
例子2:
逆推一下,"b" onerror="alert(1)" 应该是一体的,转换一下,"b" onerror='alert(1)' 去掉两个双引号,现在b之后的双引号也不是我们输入的,然后成为 "b onerror='alert(1)'",但是b之后的 " 还必须有,那么必然是第4行提供的,哪里提供呢?
?>
2. 因为全局都将 " 替换了,所以不能用 " 闭合,所以要利用第4句构造满足的句子。
//2、取width
preg_match('/<img. (width="?d*"?). >/i',$str,$match);
echo $match[1];
<a href="$1">$1</a> 替换 $1,即 $1就是b,所以又变为
//2、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg",并省去宽和高
print
preg_replace('/(<img). (src="?. )images/(. .(jpg|gif|bmp|bnp|png)"?). >/i',"${1}
${2}uc/images/${3}>",$str);
//3、取height
preg_match('/<img. (height="?d*"?). >/i',$str,$match);
echo $match[1];
1 function escape(s) {
2 var text = s.replace(/</g, '<').replace(/"/g, '"');
3 // URLs
4 text = text.replace(/(http://S )/g, '<a href="$1">$1</a>');
5 // [[img123|Description]]
6 text = text.replace(/[[(w )|(. ?)]]/g, '<img alt="$2" src="$1.gif">');
7 return text;
8 }
//1、取整个图片代码
preg_match('/<s*imgs [^>]*?srcs*=s*('|")(.*?)1[^>]*?/?s*>/i',$str,$match);
echo $match[0];
第五题
代码如下
1. 构造第三部的满足弹出alert(1)的s
代码如下
例子1:
正则表达式 g 代表全局模式,javascript replace 用法如下
一个简单的注释移除功能:
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
//4、取src
preg_match('/<img. src="?(. .(jpg|gif|bmp|bnp|png))"?. >/i',$str,$match);
echo $match[1];
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
function escape(s) {
var text = s.replace(/</g, '<').replace(/"/g, '"');
// URLs
text = text.replace(/(http://S )/g, '<a href="$1">$1</a>');
// [[img123|Description]]
text = text.replace(/[[(w )|(. ?)]]/g, '<img alt="$2" src="$1.gif">');
return text;
}
var inputStr = "[[a|http://onerror='alert(1)']]";
var ok = escape(inputStr);
document.write(ok);
</script>
</body>
</html>
$str="<a href="space.php?uid=109">fsb</a>";s<a
href="space.php?uid=109&do=thread&id=174">注意调节心态
预防职场心理疲劳</a>";
$str=preg_replace("/space.php?uid=(d )&do=thread&id=(d )/","/space-0-do-thread-id-${2}.html",$str);
$str=preg_replace("/space.php?uid=(d )/","/space-${1}.html",$str);
//输出:<a href="space.php?uid=109">fsb</a>";s<a
href="/space-0-do-thread-id-174.html">注意调节心态
预防职场心理疲劳</a>
str.replace(regexp|substr, newSubstr|function)
代码如下
第6行:输入类似于
代码如下
<img alt="b" onerror="alert(1)" src="a.gif"> OK! 加载a.gif失败,启动onerror的alert(1),成功达到目的。
$jobname="行政办—RH021001前台秘书(职位编号:RH021001)";
$jobname=preg_replace("/(.*)/","",$jobname);
$jobname=preg_replace("/.*—.*01/","",$jobname);
//输出:前台秘书
效果:
对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的 //1 符号来表示逆向引用。举例说 //11,将会使 preg_replace() 搞不清楚是想要一个 //1 的逆向引用后面跟着一个数字 1 还是一个 //11 的逆向引用。本例中的解决方法是使用 /${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。
技术点:正则表达式,html链接,img标签使用
<?php
第2行:替换s中所有的<和",用html编码表示,点击查看 HTML编码表
在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。
html渲染:
preg_replace:执行正则表达式的搜索和替换
正则表达式:
PHP正则表达式替换的相关概念:
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) preg_replace:允许你替换字符串中匹配到你定义的正则表达式。
成功的弹出img语句应该是
/*PHP正则替换图片img标记中的任意属性*/
//1、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg")
print
preg_replace('/(<img. src="?. )(images/)(. .(jpg|gif|bmp|bnp|png)"?. >)/i',"${1}uc/images/${3}",$str);
echo "<hr/>";
吃过晚饭,再练一题
replacement 可以包含 //n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 //0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。
preg_replace('[(/*) . (*/)]', '', $val);
3. 两者想合,构造 [[a|]
/*PHP正则提取图片img标记中的任意属性*php 正则替换一些例子小结【彩世界网址】。/
$str = '<center><img src="/uploads/images/20100516000.jpg"
height="120" width="120"><br
/>PHP正则提取或更改图片img标记中的任意属性</center>';
正则表达式字符含义大全
TRY:
[[img123|Description]] 形式。
分析:
本文由时时app平台注册网站发布于web前端,转载请注明出处:php 正则替换一些例子小结【彩世界网址】
关键词: