ホームページ >バックエンド開発 >PHPチュートリアル >alt をフィルタリングするための正規表現を見つける

alt をフィルタリングするための正規表現を見つける

WBOY
WBOYオリジナル
2016-06-23 14:22:031383ブラウズ

正则表达式 php

求PHP过滤alt的正则表达式,alt有三种情况,要求都能过滤掉
alt="xxxxxxxxxxxx"
alt='xxxxxxxxxxxx'
alt=xxxxxxxxxxxx

要求能过滤掉以上三种情况的。


示例:
281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
db6b417d7c5dcad09a95f99a78d5929c
134f37cac48aa22ef7dbf87445d30a55

……



要求能过滤各种情况,又不会过滤其它内容。谢谢。

回复讨论(解决方案)

$s =<<< TXT<img src="xxxx" alt="xxxxxxxxx" ><img alt="xxxxxxxx" src="xxxxxxxx"><img src="xxxxxx" alt=xxxxxxx ><img alt=xxxxxxxxxxx src="xxxxxxx"><img src='xxxx' alt='xxxxxxxxx' ><img alt='xxxxxxxx' src='xxxxxxxx'>TXT;echo preg_replace('/alt=([\'"]?).+?\b\1/is', '', $s);
01c454818dcc7c6680c26662ec9e9c98
289a458908c5c1ae20088358493e4224
011c731bd0b2397b7dea0df4a804dd52
20ec484224bc3e87ea97214740e43b8b
560c00a9ebb5dade50efc66805964ca0
1767fa3655deb1c175b1a91a1cc98854

求PHP过滤alt的正则表达式,alt有三种情况,要求都能过滤掉
alt="xxxxxxxxxxxx"
alt='xxxxxxxxxxxx'
alt=xxxxxxxxxxxx

要求能过滤掉以上三种情况的。


示例:
281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
db6b417d7c5dcad09a95f99a78d5929c
134f37cac48aa22ef7dbf87445d30a55

……



要求能过滤各种情况,又不会过滤其它内容。谢谢。
$str='281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
a16c951053bfd948682447734063cda6';
echo preg_replace('/(.*)(alt=[\"\']?.*?[\"\']?\s+)(.*)/', '$1$3', $str); 

$s =<<< TXT<img src="xxxx" alt="xxxxxxxxx" ><img alt="xxxxxxxx" src="xxxxxxxx"><img src="xxxxxx" alt=xxxxxxx ><img alt=xxxxxxxxxxx src="xxxxxxx"><img src='xxxx' alt='xxxxxxxxx' ><img alt='xxxxxxxx' src='xxxxxxxx'>TXT;echo preg_replace('/alt=([\'"]?).+?\b\1/is', '', $s);
01c454818dcc7c6680c26662ec9e9c98
289a458908c5c1ae20088358493e4224
011c731bd0b2397b7dea0df4a804dd52
20ec484224bc3e87ea97214740e43b8b
560c00a9ebb5dade50efc66805964ca0
1767fa3655deb1c175b1a91a1cc98854

你提供的方法可能只适合我在上面写的例子,我给个实际的的内容,就知道过滤出有问题了。
<P align=center><img alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243OF-12228.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243Y40-29608.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243c60-33252.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332440Y0-410N.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332441P-53227.jpg" border=0><BR><BR><img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332442M0-62002.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332443L0-N248.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332444I0-X239.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332445F-953E.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33244C30-105E1.jpg" border=0></P>


求PHP过滤alt的正则表达式,alt有三种情况,要求都能过滤掉
alt="xxxxxxxxxxxx"
alt='xxxxxxxxxxxx'
alt=xxxxxxxxxxxx

要求能过滤掉以上三种情况的。


示例:
281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
db6b417d7c5dcad09a95f99a78d5929c
134f37cac48aa22ef7dbf87445d30a55

……



要求能过滤各种情况,又不会过滤其它内容。谢谢。
$str='281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
a16c951053bfd948682447734063cda6';
echo preg_replace('/(.*)(alt=[\"\']?.*?[\"\']?\s+)(.*)/', '$1$3', $str); 

你提供的方法可能只适合我在上面写的例子,我给个实际的的内容,就知道过滤出有问题了。

<P align=center><img alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243OF-12228.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243Y40-29608.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243c60-33252.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332440Y0-410N.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332441P-53227.jpg" border=0><BR><BR><img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332442M0-62002.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332443L0-N248.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332444I0-X239.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332445F-953E.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33244C30-105E1.jpg" border=0></P>

我知道我那个正则有点问题,加那个 \b 是不得已而为之
不过既然能满足你示例的数据,那也就可以了。
你总不能让我去罗列一起可能出现的情况吧?那要你干什么呢?

$s =<<< TXT<P align=center><img alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243OF-12228.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243Y40-29608.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243c60-33252.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332440Y0-410N.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332441P-53227.jpg" border=0><BR><BR><img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332442M0-62002.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332443L0-N248.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332444I0-X239.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332445F-953E.jpg" border=0>   <img  src="/uploads/allimg/c100508/12I33244C30-105E1.jpg" border=0 alt=如果QQ我是你></P>TXT;echo preg_replace('/alt=([\'"]?).+?\1(\s|>)/is', '$2', $s);
9e0d973006c233b0028acee7654d97e0eaa89a91a2aceb0c8555a87128b3622a
   4c18747a7fe5dd7cbb9e958646440465
   11fc81de6457a0431b5f0d30f724878d
   161a7d50ca472447a8ce84e330b65050
   6a2c5fa088c046fe7132f7ab2b13244e82c2f54f4cf245029ffb326befd49b3f82c2f54f4cf245029ffb326befd49b3f
596b37c7ab3903ad87aae028551fff4e
65b67acc94167fdb59596e001c0b816d
cb7e6b9157c53b33e852e17ee5f9d796
 da9e7e63f3233d7b5eddeaae4b926428
 6379be7619eb3c574ffa7a3a885989adee2bfd64228f824cf6027e0da2815b78



求PHP过滤alt的正则表达式,alt有三种情况,要求都能过滤掉
alt="xxxxxxxxxxxx"
alt='xxxxxxxxxxxx'
alt=xxxxxxxxxxxx

要求能过滤掉以上三种情况的。


示例:
281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
db6b417d7c5dcad09a95f99a78d5929c
134f37cac48aa22ef7dbf87445d30a55

……



要求能过滤各种情况,又不会过滤其它内容。谢谢。
$str='281c1fbbfa2eef6ca412b8ba38a301aa
b804e371f895b6a64c631464cda5a252
0fac6e0b66c1c673e655670ac8b4f9d1
f962f25690997c5880204daab53f4298
a16c951053bfd948682447734063cda6';
echo preg_replace('/(.*)(alt=[\"\']?.*?[\"\']?\s+)(.*)/', '$1$3', $str); 

你提供的方法可能只适合我在上面写的例子,我给个实际的的内容,就知道过滤出有问题了。

<P align=center><img alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243OF-12228.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243Y40-29608.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33243c60-33252.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332440Y0-410N.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332441P-53227.jpg" border=0><BR><BR><img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332442M0-62002.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332443L0-N248.jpg" border=0>  <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332444I0-X239.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I332445F-953E.jpg" border=0>   <img  alt=如果QQ我是你 src="/uploads/allimg/c100508/12I33244C30-105E1.jpg" border=0></P>

你到底测试我的了没有呢?

$str=f631a2eb9b8a38842d72c721cfef04d013ec8a2f39aedb152a265e63f8a0655a 6e000e2a4912abad6efce05a3baa4a03
7c8ad3488280f3807474a012dce9e03e82c2f54f4cf245029ffb326befd49b3f82c2f54f4cf245029ffb326befd49b3f
b41bca945c22eff7b861062f89af85f3
1faa16d8c8f20bad93ff06484001f6f8
855a58fb8a3d99825d3826852f4fda96ee2bfd64228f824cf6027e0da2815b78
TXT;
echo preg_replace(' /(.*?)(alt=["']?.*?["']?)(s+|>)/', '$1$3', $str);
にスペースがないことを忘れてください。戻る さて、最後にスペースがない状況を追加してください

お二人ともありがとうございました!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。