0

所以可以说我有:

<?php
    $template = '<img src="{image}" editable="all image_all" />';
    $template .= '<div>';
    $template .= '<img src="{image}" editable="yes" />';
    $template .= '</div>';
?>

现在我想让脚本遍历包含 {image} src 的所有元素并检查它们是否有

editable="all" 

属性。

如果是这样:获取第二个可编辑属性,例如

image_all

并将其包含在 src 中。

4

3 回答 3

1

可以使用评论中建议的库Simple HTML DOM Parser来简化此任务:

就这么简单:

$images = array(); //an array for your images with {image} in src
$html = "...";
foreach($html->find('img') as $element)
    if($element->src == '{image}') {
        //add to the collection
        $images[] = $element;
    }
    //Also you can compare for the editable attribute same way as above.
}
于 2012-06-04T08:53:33.843 回答
0

如果您想获得第二个可编辑属性并将其保存在 $src 之类的数组中,请检查以下代码:

$content=new DOMDocument();
$content->loadHTML($template);
$elements=simplexml_import_dom($content); 
$images=$elements->xpath('//img');
foreach ($images as $img) {
    if(preg_match('/all /i', $img['editable']))
        $src[]=substr($img['editable'],4) ;
}
print_r($src);

将输出:

Array ( [0] => image_all )
于 2012-06-04T09:19:10.837 回答
0

试试这个,

  include('simple_html_dom.php');
  $html = str_get_html('<div><img src="{image}" editable="all image_all" /><img src="{image}" editable="yes" /></div>');
  $second_args= array();
  foreach($html->find('img[src="{image}"]') as $element){ 
    $editables = explode(' ',$element->editable); 
    if($editables[0] === "all"){ 
        $second_args[] = $editables[1];
    }
  }
  print_r($second_args); 
于 2012-06-04T09:19:29.140 回答