正则表明式过滤,php和js提取img标签的src属性值的正则表明式

  吃过晚饭,再练1题

  吃过晚饭,再练1题

PHP正则表明式轮换的连带概念:

要协作的字符串:
<img src=image/ad1.gif width=”128″ height=”36″/><img
src=’image/ad2.gif’ width=”128″ height=”36″ />
正则表达式:
<img[s]+src[s]*=[s]*(([‘”](?<src>[^'”]*)[‘”])|(?<src>[^s]*))
正则相配输出结果:
x
image/ad1.gif
image/ad2.gif
PHP正则提取或 img 成分的 src 属性值:

  第五题

  第五题

preg_replace:执行正则表明式的物色和替换

 代码如下

  

  

mixed preg_replace (   mixed pattern,   mixed replacement,   mixed
subject [, int limit])
preg_replace:允许你替换字符串中格外到您定义的正则表明式。

<?php
/*PHP正则提取图片img标志中的任性属性*/
$str = ‘<center><img src=”/uploads/images/20十051陆仟.jpg”
height=”120″ width=”120″><br
/>PHP正则提取或改换图片img标志中的自便属性</center>’;
//壹、取全方位图片代码
preg_match(‘/<s*imgs+[^>]*?srcs*=s*(‘|”)(.*?)1[^>]*?/?s*>/i’,$str,$match);
echo $match[0];
//2、取width
preg_match(‘/<img.+(width=”?d*”?).+>/i’,$str,$match); echo
$match[1];
//3、取height
preg_match(‘/<img.+(height=”?d*”?).+>/i’,$str,$match); echo
$match[1];
//4、取src
preg_match(‘/<img.+src=”?(.+.(jpg|gif|bmp|bnp|png))”?.+>/i’,$str,$match);
echo $match[1];
/*正则表明式过滤,php和js提取img标签的src属性值的正则表明式。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/>”;
//贰、将src=”/uploads/images/2010051陆仟.jpg”替换为src=”/uploads/uc/images/2010051陆仟.jpg”,并省去宽和高
print
preg_replace(‘/(<img).+(src=”?.+)images/(.+.(jpg|gif|bmp|bnp|png)”?).+>/i’,”${1}
${2}uc/images/${3}>”,$str);
?>

1 function escape(s) {
2   var text = s.replace(/</g, '&lt;').replace(/"/g, '&quot;');
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 function escape(s) {
2   var text = s.replace(/</g, '&lt;').replace(/"/g, '&quot;');
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 }

二个简便的讲解移除功效:

Js正则表明式领取图片地址

 

 

 代码如下

 代码如下

分析:

分析:

preg_replace(‘[(/*)+.+(*/)]’, ”, $val);

//正则表明式
<script
language=”javascript”>
var a='<P><IMG
src=””
mce_src=”;’
var b=/<IMG src=”([^”]*?)”>/gi
var s=a.match(b)
for(var i= 0;i<s.length;i++)
{
alert(s[i]);
alert(RegExp.$1)
}
</script>

本事点:正则表明式,html链接,img标签使用

技能点:正则表明式,html链接,img标签使用

那段代码能够移除在 PHP 和 CSS 中使用 /* 注释 */
格式的多多行注释。当中的多少个参数分别为正则表达式,要替换到的字符串和要替换的对象字符串(那里要做移除功效,所以是个空白字符串
-> ”)。假使你想匹配次级规则,能够行使 $0 代表任何同盟,$一、$贰等,依此类推代表分别的次级规则。

正则表达式:

正则表明式:

在 subject 中寻觅 pattern 方式的合营项并替换为 replacement。假诺钦赐了
limit,则仅替换 limit 个卓殊,假设省略 limit 也许其值为
-一,则怀有的合作项都会被替换。

第3行:替换s中装有的<和”,用html编码表示,点击查看
HTML编码表

第二行:替换s中具备的<和”,用html编码表示,点击查看
HTML编码表

replacement 能够涵盖 //n 情势或(自 PHP 四.0.四 起)$n
方式的逆向引用,首推使用后者。种种此种引用将被替换为与第 n
个被抓走的括号内的子格局所相配的公文。n 能够从 0 到 9玖,个中 //0 或 $0
指的是被整人体模型式所相称的文书。对左圆括号从左到右计数(从 壹开首)以获得子方式的多寡。

         正则表明式 g 代表全局格局,javascript replace 用法如下

         正则表明式 g 代表全局格局,javascript replace 用法如下

对替换格局在二个逆向引用前边随着二个数字时(即:紧接在一个相配的情势后边的数字),无法应用深谙的
//一 符号来代表逆向引用。举例说 //1壹,将会使 preg_replace()
搞不清楚是想要一个 //一 的逆向引用前面随着二个数字 1 照旧3个 //1一的逆向引用。本例中的化解方法是使用 /${1}1。那会形成一个隔开分离的 $1逆向引用,而使另三个 一 只是只有的文字。

   str.replace(regexp|substr, newSubstr|function)
   str.replace(regexp|substr, newSubstr|function)

例子1:

第4行:将
href=”

第4行:将
href=”

 代码如下

      ()
是为着提取相称的字符串。表明式中有多少个()就有多少个照管的相称字符串。

      ()
是为着提取相称的字符串。表明式中有多少个()就有多少个照管的相称字符串。

$jobname=”行政府办公室—本田UR-VH02十0一前台秘书(职位编号:汉兰达H021001)”;
$jobname=preg_replace(“/(.*)/”,””,$jobname);
$jobname=preg_replace(“/.*—.*01/”,””,$jobname);
//输出:前台秘书

第陆行:输入类似于

第陆行:输入类似于

例子2:

[[img123|Description]] 形式。
[[img123|Description]] 形式。

 代码如下

 
 正则表达式字符含义大全

 
 正则表明式字符含义大全

$str=”<a href=”space.php?uid=拾九”>fsb</a>”;s<a
href=”space.php?uid=拾玖&do=thread&id=17四”>注意调整心理防御职场激情疲劳</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=10九”>fsb</a>”;s<a
href=”/space-0-do-thread-id-17四.html”>注意调整心理预防职场心情疲劳</a>

 

 

事例三: 正则提取或交换img标识属性

TRY:

TRY:

 

  一. 组织第二部的知足弹出alert(一)的s

  一. 构造第贰部的满意弹出alert(一)的s

 代码如下

    成功的弹出img语句应该是

    成功的弹出img语句应该是

<?php

    <img alt=”b” onerror=”alert(1)” src=”a.gif”> OK!
加载a.gif退步,运行onerror的alert(壹),成功完结目标。

    <img alt=”b” onerror=”alert(1)” src=”a.gif”> OK!
加载a.gif退步,运营onerror的alert(一),成功落成目标。

/*PHP正则提取图片img标志中的任性属性*/
$str = ‘<center><img src=”/uploads/images/2010051五千.jpg”
height=”120″ width=”120″><br
/>PHP正则提取或改造图片img标识中的任性属性</center>’;

  2. 因为全局都将 ” 替换了,所以不可能用 ”
闭合,所以要使用第陆句构造满足的句子。

  二. 因为全局都将 ” 替换了,所以无法用 ”
闭合,所以要使用第四句构造满足的句子。

//一、取全方位图片代码
preg_match(‘/<s*imgs+[^>]*?srcs*=s*(‘|”)(.*?)\1[^>]*?/?s*>/i’,$str,$match);
echo $match[0];

   逆推一下,”b” onerror=”alert(1)” 应该是环环相扣的,转变一下,”b”
onerror=’alert(一)’
去掉七个双引号,今后b之后的双引号也不是大家输入的,然后改成 “b
onerror=’alert(壹)'”,但是b之后的 ”
还非得有,那么势必是第陆行提供的,哪儿提供吗?

   逆推一下,”b” onerror=”alert(1)” 应该是壹体的,转变一下,”b”
onerror=’alert(一)’
去掉八个双引号,未来b之后的双引号也不是我们输入的,然后改成 “b
onerror=’alert(一)'”,然而b之后的 ”
还非得有,那么一定是第伍行提供的,何地提供吗?

//2、取width
preg_match(‘/<img.+(width=”?d*”?).+>/i’,$str,$match);
echo $match[1];

  <a href=”$1″>$1</a> 替换 $1,即 $一就是b,所以又成为

  <a href=”$一”>$一</a> 替换 $一,即 $一正是b,所以又改成

//3、取height
preg_match(‘/<img.+(height=”?d*”?).+>/i’,$str,$match);
echo $match[1];

  3. 两者想合,构造 [[a|]

  叁. 两者想合,构造 [[a|]

//4、取src
preg_match(‘/<img.+src=”?(.+.(jpg|gif|bmp|bnp|png))”?.+>/i’,$str,$match);
echo $match[1];

 

 

/*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/>”;

html渲染:

html渲染:

//二、将src=”/uploads/images/20十0515000.jpg”替换为src=”/uploads/uc/images/20十051五千.jpg”,并省去宽和高
print
preg_replace(‘/(<img).+(src=”?.+)images/(.+.(jpg|gif|bmp|bnp|png)”?).+>/i’,”${1}
${2}uc/images/${3}>”,$str);

<!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, '&lt;').replace(/"/g, '&quot;');
  // 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>
<!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, '&lt;').replace(/"/g, '&quot;');
  // 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>

?>

 

 

效果:

效果:

澳门葡京 1

澳门葡京 2

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website