当前位置:  开发笔记 > 编程语言 > 正文

php regex:获取src值

如何解决《phpregex:获取src值》经验,为你挑选了2个好方法。

如何在php中使用正则表达式检索所有src值?



检索到的值应仅包含:

HTTP://localhost/assets/javascript/system.js

HTTP://localhost/index.php的uid = 93db46d877df1af2a360fa2b04aabb3c

谢谢.



1> Scott Evernd..:
/src=(["'])(.*?)\1/

例:

';
$count = preg_match('/src=(["\'])(.*?)\1/', $input_string, $match);
if ($count === FALSE) 
    echo('not found\n');
else 
    echo($match[2] . "\n");

$input_string = "";
$count = preg_match('/src=(["\'])(.*?)\1/', $input_string, $match);
if ($count === FALSE) 
    echo('not found\n');
else 
    echo($match[2] . "\n");

得到:

http://localhost/assets/javascript/system.js
http://localhost/index.php?uid=93db46d877df1af2a360fa2b04aabb3c



2> Nick Presta..:

也许只是我,但我不喜欢使用正则表达式来查找HTML中的内容,尤其是当HTML不可预测时(可能来自用户或其他网页).

这样的事情怎么样:

$doc =
<<
    
DOC;

$dom = new DomDocument;
$dom->loadHTML( $doc );

$elems = $dom->getElementsByTagName('*');

foreach ( $elems as $elm ) {
    if ( $elm->hasAttribute('src') )
        $srcs[] = $elm->getAttribute('src');
}

print_r( $srcs );

我不知道这与正则表达式之间的速度差异是什么,但是我花了很多时间阅读它并理解我正在尝试做什么.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有