Heim >Backend-Entwicklung >PHP-Tutorial >上面那个正则表达式匹配的问题解决了

上面那个正则表达式匹配的问题解决了

WBOY
WBOYOriginal
2016-06-23 14:25:17987Durchsuche

找到原因了,但是原帖无法回复,也无法修改

总结一下吧:
想匹配一个网页地址中的所有图像地址,写了正则表达式如下:

$reg="/<img \s*.*src\s*=\s*[\"|\']?\s*([^ alt="上面那个正则表达式匹配的问题解决了" >\"\']*)/i";

为什么像如下的图像文件地址:
<img  src="../Images/Album Cover/album_012.jpg" alt="上面那个正则表达式匹配的问题解决了" >

只能匹配到:
  


原因是浏览器。。。我用的chrome
$reg="/<img \s*.*src\s*=\s*[\"|\']?\s*([^ alt="上面那个正则表达式匹配的问题解决了" >\"\']*)/i";$s = '<img  src="../Images/Album Cover/album_012.jpg" alt="上面那个正则表达式匹配的问题解决了" >';preg_match_all($reg, $s, $m);print_r($m);


运行后输出:
Array(    [0] => Array        (            [0] => 


chrome把后面的
<img  src="../Images/Album Cover/album_012.jpg        )    [1] = alt="上面那个正则表达式匹配的问题解决了" > Array        (            [0] => ../Images/Album Cover/album_012.jpg        ))

全删掉了!而且是在源代码中,也就是看最后的网页源代码也看不到这一段!换了firefox,上面的这段直接在网页上也看不到,看源代码可以找到这一段,而且是用红色标记的,这果断是逼我换firefox嘛?


回复讨论(解决方案)

....
echo '

';  <br> print_r($m);  <p class="sougouAnswer">  ....  <br> echo '</p><pre class="brush:php;toolbar:false">';  <br> print_r($m);  <br> 加了<pre class="brush:php;toolbar:false">的,就是输出上面那个结果,应该是chrome的安全保护措施吧,把结果中的不良代码删掉了,不信你可以换个chrome试试,我的chrome版本是 29.0.1541.0  <br>  <br> 果断换firefox了  <p class="sougouAnswer">  试了下,好像是那么回事。那就用firefox吧。 </p>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn