0

だから私が持っているとしましょう:

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

ここで、スクリプトが {image} src を含むすべての要素を通過し、それらのいずれかに

editable="all" 

属性。

その場合: 2 番目の編集可能な属性を取得します。

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

2番目の編集可能な属性を取得して$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 に答える