Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取img类的PHP正则表达式_Php_Regex - Fatal编程技术网

获取img类的PHP正则表达式

获取img类的PHP正则表达式,php,regex,Php,Regex,我有一堆文本和HTML,我想要实现的是收集所有符合特定模式的img标记的css类,并将它们放在一个循环中 foreach ($classes as $class) { //do something } 例如: <img src="sample1.gif' class="get-this-tag-1" />This is text. This is text. This is text. This is text. This is text. This is text. &l

我有一堆文本和HTML,我想要实现的是收集所有符合特定模式的img标记的css类,并将它们放在一个循环中

foreach ($classes as $class) {

  //do something

}
例如:

<img src="sample1.gif' class="get-this-tag-1" />This is text. This is text. This is text. This is text. This is text. This is text. <img src="sample2.gif' class="image" />This is text. This is text. This is text. This is text. This is text. This is text. <img src="sample3.gif' class="get-this-tag-2" />This is text. This is text. This is text. This is text. This is text. This is text.
这可能吗?还是有一种更理想的方式来实现我想要的目标


提前谢谢你

首先,不应该使用正则表达式处理HTML。您可以使用正则表达式很好地处理类名,但不能处理HTML。这应该用一个简单的方法来完成


您的示例使用Javascript非常简单,在jQuery中只是一行代码。因此,您可能希望深入研究,这也使PHP变得容易。根据我的经验,对于大型站点来说,这是一件相当缓慢的事情。

我在regex中做过这件事,但是使用较新的DOM函数会轻松得多。您没有指定正在使用的语言,但它似乎是php,它有足够的函数用于此作业:

如果您仍然想使用正则表达式,这可能会让您开始:

$matches = array();
preg_match_all ( '|<img.*>|siU', $data, $matches, PREG_PATTERN_ORDER );
print_r($matches);
$matches=array();
preg|u match_all(“| siU”、$data、$matches、preg|u PATTERN_ORDER);
打印(匹配项);

您需要知道服务器端或浏览器端的类名吗?如果只是浏览器端,我建议使用jquery从javascript获取数据。

我不太清楚您的意思,但如果您只想检索类名,可以执行以下操作:

preg_match_all("/get-this-tag-\d+/", $string, $classes);

所有以获取此标记开始的类名称都将位于数组$classes中。

请参阅我需要一个regexp,它可以用HTML解析SO问题,其中包含单词
parse
X?HTML
和一些未指定的XML标记,并添加指向bobince规范答案的注释。这是该问的地方吗?谢谢你给我指出了正确的方向。我使用loadHTML和xpath解析HTML,效果非常好。:)嗨,我好不容易才弄明白。使用jquery获取图像类:$j(“img”).each(function(){var cname=$j(this).attr(“class”)do stuff…});我认为这是最好的方法。感谢您的建议:)我认为更有效的方法是使用$j(“img.class”)或$j(“img[class=someclass]”)获取类的所有图像引用。